次のフローのアプリがあります (同じアプリ内のすべてのアクティビティ):
- アクティビティ A は でアクティビティ B を開始し
startActivity
ます。ブール値の "autoContinue"=true エクストラを追加する場合があります。 - アクティビティ B が開始されると、 で「autoContinue」フラグがチェックさ
onCreate
れgetIntent().hasExtra("autoContinue")
ます。フラグが true の場合、すぐに でアクティビティ C を開始しstartActivity
ます。
これで、アクティビティ C で戻るボタンを押すための 2 つのシナリオができました。
- アクティビティ B がまだアクティビティ スタックにあり、破棄されていない場合は、すべて問題ありません。アクティビティ C が閉じ、アクティビティ B が表示されます。
- ホームボタンを押してアクティビティ C を終了し、アクティビティ C に戻る前に他のことをすると、アクティビティ B が破棄されることがよくあります。アクティビティ C で戻るボタンを押すと、"autoContinue"=true のインテントでアクティビティ B が作成され、すぐにアクティビティ C が再び開始されます。
アクティビティ B のインテントからフラグを削除しようとしましたonCreate
が、うまくいきません:
final Intent intent = getIntent();
final Bundle extras = intent.getExtras();
if (extras.containsKey("autoContinue")) {
intent.removeExtra("autoContinue");
continue();
}
アクティビティ C から戻るときに、インテント エクストラから "autoContinue"=true フラグを削除するにはどうすればよいですか?