問題タブ [activity-stack]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
232 参照

android - 現在のアクティビティ スタックに新しいアクティビティを追加しない

これはカバーされていると確信していますが、どこにも見つかりません。基本的に、アイテムを選択すると市場に向けて起動するランチャー アプリがあります。ユーザーがアプリから離れてからアプリに戻ってきても、スタックの一番上にあるアクティビティを市場に表示できますが、これは私がやりたくないことです。ではなく、

アプリのメイン アクティビティ

ユーザーがアイテムをクリックしてマーケットプレイスを開く

マーケットプレイスがオープン

ユーザーは家に帰り、他のことをします。

ユーザーがアプリを再度開くと、マーケット プレイスであるスタック内の最後のアクティビティに移動します。

代わりに行きたい

アプリのメイン アクティビティ

ユーザーがアイテムをクリックしてマーケットプレイスを開く

マーケットプレイスがオープン

ユーザーは家に帰り、他のことをします。

ユーザーがアプリを再度開くと、アプリのメイン アクティビティに戻ります。

マーケットプレイスのアクティビティがアプリの一部である場合、コードでこれを行うことができますが、そうではないので、少し行き詰まっています。

どうもありがとう。

0 投票する
0 に答える
104 参照

android - ウィジェットから起動されたアクティビティにより、スタック内のアクティビティが表示されます

2 つのアクティビティ (A と B など) と appWidget を持つ小さなアプリケーションがあります。ウィジェットをクリックするとアクティビティが開始され、いくつかのことをしながらウィジェットがアニメーション化されます。私はこのようにしています。

のアクティビティは次のことをonCreate行います。

最後に、このアクティビティから (魔女は完全に透明です) ダイアログを表示します。これは私が望むように機能しますが、ここに問題があります:

アクティビティを起動するときに、以前にアプリケーションの最初のアクティビティ (アクティビティ A) を開き、[戻る] ボタンで閉じるのではなく、ホーム ボタンで閉じた (アクティビティはスタックに残っている) 場合、ダイアログを表示する瞬間ウィジェットによって起動されたアクティビティから、ダイアログが表示されますが、アクティビティ A も同様です。

マニフェスト android:noHistory="true" の設定を試してみましたが、問題は解決しましたが、アクティビティ A からアクティビティ B を起動すると、戻るボタンでアクティビティ A が表示されません。

0 投票する
1 に答える
282 参照

android - 致命的な例外が Android アプリケーション全体を強制終了しないのは正常ですか?

アプリケーションのアクティビティの 1 つで例外が発生した場合、強制終了ダイアログが、アプリケーション全体を強制終了するのではなく、アプリケーションの履歴/スタック内の以前のアクティビティに戻るように見えることを少し心配しています。これは正常ですか?私のアプリケーションが何らかの形でそれ自体の複数のバージョンを実行している可能性があることを懸念しています。

コードを意図的に「壊す」ことで、次のことがわかりました。

次々と開かれていく僕の活動 A>B>C>D>E

アクティビティAを中断すると強制的に閉じて電話のホーム画面に戻る アクティビティの同上 強制的に閉じると、中断するとアクティビティにB 戻るDように見えるB強制的に閉じると、中断するとアクティビティにE戻るように見えるC

どうしたの?すべてのインテントをチェックして、それらを 2 回開いていないことを確認しました

0 投票する
1 に答える
2885 参照

android - Android SingleTask、SingleTop、ホームボタン

私のアプリケーションには、理解できない動作があります。私はMainActivityとして Aを持っていSingleTaskます。ActivityそれもBと呼んでいSingleTaskます。2番目のアクティビティでボタンを押してHome別のアプリケーションを開き、その後ボタンを押した状態でアプリケーションに移動しようとすると、Home常に Mainに移動し、ボタンを押しActivityたときの状態を保持して2番目のアクティビティを開く必要がありますHome.

2 番目のアクティビティを singleTop に設定しようとしましたが、機能しません。

何か助けはありますか?

0 投票する
1 に答える
298 参照

android - 何もクリアせずにアクティビティをルートにする

たとえば、A->B->C->D スタックがあるとします。D->A->B->C に並べ替えるにはどうすればよいですか?

0 投票する
2 に答える
265 参照

java - スタックからアクティビティをポップ onResume

私のプログラムが起動すると、mainActivity が実行され、すぐにデータが起動されて別の Activity に読み込まれます。これを行うのは、データを mainActivity で 1 回だけ読み込む必要があり、その後、他のアクティビティに送信する必要があるためです。

そう!そうは言っても、私の問題はおそらく予見可能です!ユーザーが十分にクリックして戻ると、Android のメイン メニューに戻る代わりに、この最初のアクティビティに到達し、そこに座ったままになります。

私がやりたいことは、mainActivity の onResume() メソッドに何かを追加して、再入力したときにコード内から [戻る] ボタンを「アクティブ化」することです (ブール値フラグは、実行していないことを確認します)。これは間違っているため、バッククリックであったことがわかります)。これは、現在のアクティビティをアクティビティ スタックからポップしているだけではありませんか?

アクティビティ スタックからアクティビティをポップするにはどうすればよいですか。

ありがとう!

0 投票する
3 に答える
11878 参照

android - 戻るボタン/キーを押してログイン レイアウトに戻らないようにするにはどうすればよいですか?

研究所用のアプリを作成したい。

問題は、私のアプリケーションには 2 つのレイアウト (ログインとダッシュボード) があることです。

学生は、ログイン フォームに正しく入力し、ダッシュボードに入り、ボタンを押して、他のフィールドに入力することができます。ただし、ユーザーが [戻る] ボタンを押した場合、ログイン画面に戻るのではなく、ダッシュボードに残るか、失敗した場合はアプリケーションを終了する必要があります。

次に、学生がアプリケーションを再度開いたときに、既にログが記録されている場合、ユーザーがダッシュボードのログアウト ボタンを押してからログイン画面にリダイレクトしない限り、ログイン画面ではなくダッシュボードに自動的にリダイレクトされます。

どうやってそれをすることができますか?

編集: 2つのインテントと2つのアクティビティを実装しましたが、新しい質問が発生しました。ホームボタンを押してタスクマネージャーからアプリを開くと、残されたアクティビティで開きますが、アイコンから開く最初のアクティビティからもう一度アプリを開き、最後に残っていたアプリを開きますか?

0 投票する
1 に答える
126 参照

android - Androidのアクティビティの外から開始されたアクティビティスタックからアクティビティをクリアするには?

アクティビティの外部からアクティビティを開始しているため (アプリが実行されていない場合でも)、インテント フラグ Intent.FLAG_ACTIVITY_NEW_TASK を使用して A と言うダイアログ アクティビティを開始するブロードキャスト レシーバー クラスがあり、誰もが同じことを行います。**

場合 :

** アプリを実行して閉じました。いくつかのイベント トリガー ブロードキャストとブロードキャスト レシーバーがダイアログ アクティビティ A をキャッチして開始し、ユーザーはそれを終了してキャンセルします。問題は次のとおりです。ユーザーがホーム ボタンからアプリを起動しようとすると、メイン アクティビティの代わりにダイアログ アクティビティが開きます。

任意の提案をいただければ幸いです。

前もって感謝します

0 投票する
3 に答える
287 参照

android - 既知の数のアクティビティをスタックからポップする

アプリを構築する過程で、アクティビティをAと呼び、 A(1) -> A(2) -> A(3) -> ... -> A(として複数回開きます。 m) -> ... -> A(n) .

アプリでA(m)までずっとポップしたいのですが、選択したアクティビティまでずっとポップする方法はありますか?

FLAG_ACTIVITY_CLEAR_TOPを持ついくつかの回答を既に見ましたが、スタック全体をクリアしてスタックの最初の要素に移動するだけのように思えますが、それは私が取得しようとしているものではありません。

アップデート:

ここで達成しようとしているのは次のとおりです。質問のリストがあり、ユーザーはそれぞれに対して異なる回答を選択できます。

彼が選択すると、質問と回答が履歴のリストに入り、別の質問が表示されます。任意の時点で、ユーザーは履歴ボタンをクリックして、選択した質問に戻ることができます。

Q&A アクティビティはすべて同じなので、質問に戻るということは、そこに到達するまでスタックをポップすることを意味します。

0 投票する
3 に答える
7532 参照

android - スタックからバックグラウンドアクティビティ/アクティビティをクリアする正しい方法は何ですか?

質問のタイトルにあるように、スタックの途中で現在一時停止モードになっているアクティビティを「削除」/破棄/終了するための最良の方法を知る必要があります(特定のインスタンスではなく、特定の派生クラス)。

例:
スタックの現在の状態が次のようになっている場合:

すべてのActivityCインスタンスを「クリア」するリクエストにより、スタックは次のようになります。

アクティビティ起動モードまたはインテントフラグに依存することはしたくありません。私はそれらの使い方とその利点を知っています。

私が現在できることは、破棄する必要のあるすべてのアクティビティがリッスンするブロードキャストを送信し、ブロードキャストを受信したときにActivity.finish()を呼び出すことです。
それは機能していますが、ホスティングアクティビティが一時停止している場合でも受信者を登録する必要があり、一時停止したアクティビティから「finish()」メソッドが呼び出されるのが正しいかどうかはわかりません。

再開されたアクティビティからActivity.finish()メソッドを呼び出すのは正しいですか?

受信者をOnCreate()メソッドに登録し、OnDestroy()の登録を解除するのは正しいですか?

再開されたアクティビティからのブロードキャストを処理し、その時点からfinish()を呼び出すのは正しいですか?

スタックからアクティビティをクリアするための「Androidの方法」または知らないAPIはありますか?

前もって感謝します