シナリオは次のとおりです。
アプリを起動し、アクティビティ A を開始し、B に移動してから C に移動し、ホーム ボタンを押します。Cは破壊されます。タスク マネージャーを起動し、アプリのアイコンを押します。アクティビティ C が再作成されています。この動作を停止するにはどうすればよいですか? 私が望むのは、アクティビティ A に戻ることです。
これに最も近いのは、アクティビティ B、C を Intent.FLAG_ACTIVITY_NO_HISTORY で起動することでした。ただし、このフラグの問題は、アクティビティ B、C がアプリの存続期間を通じて再作成されないようにすることです (タスク マネージャーがユーザーを A に導くと、アクティビティは作成可能になるはずです)。
編集:代わりにこのアプローチを使用すると、 Intent.FLAG_ACTIVITY_NO_HISTORY ケースと同じ動作が観察されます:
class C extends Activity
{
...
@Override
protected void onDestroy()
{
// last resort
finish();
super.onDestroy();
//finish();
}
}
onDestroy() が一度呼び出されると、アクティビティ C に戻ることはできません :(
ありがとう