アクティビティナビゲーションとバックスタックに問題があり、解決してくれることを期待していました。
問題
ルートアクティビティ>>>SecondActivity>> HomeButton
次に、ホームページに移動し、そこから選択します...
Gmail>>メッセージ>>アプリケーションで添付ファイルを開く>>ImportActivity>> RootActivity
その結果、新しいタスクが開始され、アプリケーションの別のインスタンスが使用されます。2つの別々のタスクを実行したくないので、これは受け入れられません。1つだけが必要です。
望ましい結果
私がしたいのは、ユーザーが添付ファイルを開き、ImportActivityが実行を終了して(android:noHistory
trueに設定されている)呼び出しstartActivity(intent)
をRootActivity
開始したときに開始されますが、元のタスクでは1つのインスタンスと残りのアクティビティのみがその上に保持されます(この場合SecondActivity
)は削除されます。
これが必要な理由は、ユーザーがファイルをインポートした後にアプリケーションから移動し、アプリアイコンをタッチすると、最初のタスクがバックスタックとともに読み込まれ、ユーザーが2つの異なる部分にいることができる2つのタスクが実行されている場合です。すぐに私のアプリケーション。
私が試したこと
起動モードで遊んだことがありますが、どれも必要な機能を実際に提供してくれません。
私が試した起動モード。
android:launchMode = "singleTask" -これは、起動されるたびにルートアクティビティを再開しました。ユーザーがアプリケーション内のホームボタンを押してアプリアイコンをタッチしても、バックスタックは破棄されました。
android:launchMode = "singleInstance =は、他のアクティビティをタスクで実行することを許可しません。
また、開始するインテントを呼び出すとき、RootActivity
私は役に立たないために以下を使用しました。
Intent i = new Intent(ImportActivity.this,TrackingActivity.class);
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(i);
私がやりたいことをすることは可能ですか?
前もって感謝します