0

私は、アクティビティのlaunchmodeとインテントの旗の間で私のユースケースを行う方法を理解していません。私は何をしたいかAndroidのlauchmodeとシングルインスタンス

A => B => C => B when i back B => C => A 

を他の言葉では、私は、スタック内のすべての活動の単一のインスタンスを持ちたいと私は、単一のインスタンスのいずれかを思い出す場合の活動は、スタックの最上部に移動します私のカスタムスプラッシュスクリーンの例外(ただし、私はこのアクティビティ "スプラッシュスクリーン"のnoHistoryでこの問題を解決しています)。

フラグ Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOPの標準モードを試しましたが、これはflag Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_REORDER_TO_FRONTですが、私が望むような動作がありません。

launchmodeと私が欲しいものを作るために使用するフラッグを教えていただけたら、私は感謝します。

答えて

1

FLAG_ACTIVITY_REORDER_TO_FRONTはあなたのケースに該当すると思われる:

FLAG_ACTIVITY_REORDER_TO_FRONT

Context.startActivity(に渡されたインテントに設定した場合)、このフラグが立ち上げ活動はその目の前に持って来られるようになりますタスクの履歴スタックがすでに実行中の場合

たとえば、A、B、C、Dの4つのアクティビティからなるタスクを考えてみましょう.DがアクティビティBのコンポーネントに解決するインテントでstartActivity()を呼び出した場合、Bは結果スタック:A、C、D、Bこのフラグは、FLAG_ACTIVITY_CLEAR_TOPも指定されている場合は無視されます。

我々は、上記の説明で活動Dを省略した場合、我々が得る:

A、B、C(B開始)=> A、C、あなたが望むもののように見えるB

を。

+0

私は試してみましたが、うまくいきましたが、それぞれの呼び出しでアプリの新しいインスタンスが起動されます(現在のアプリの起動を表示するボタンをクリックすると、起動したスクリーンの番号が表示されます)。これは?) – Illuyankas

+0

まあ、私は解決策を見つけるためには、標準(私はsingleInstance/singleTaskを変更することを忘れて、明らかに問題の原因)を標準に設定しなければならなかった。 – Illuyankas

関連する問題