ダイアログをテーマにしたアクティビティがあります。ダイアログが表示されているときにホームボタンを押してからタスクマネージャーを使用してアプリを再起動すると、そのダイアログアクティビティはアプリが開始するアクティビティになり、他のアクティビティに戻ることはできません。に。つまり、ダイアログアクティビティをロードしたときに実行されていたアクティビティが実行されていません。だから私はこのダイアログをテーマにしたアクティビティをデスクトップ上に置いています。それは理にかなっている。
Androidのアクティビティライフサイクルを見ると、OSは最後のアクティビティを記憶しており、そこで再起動を試みます。そのため、アクティビティですべてのon *メソッド(onResume、onRestartなど)を作成しました。私が見つけたのは本当に不可解でした。タスクマネージャーからアプリを再起動すると、次のメソッドが呼び出されます。
onCreate()
onResume()
onStop()
onDestroy()
私が本当に期待していたところ
onRestart()
onCreate()
onResume()
- onStopとonDestroyがすぐに呼び出されるのはなぜですか?また、onDestroyが呼び出されても、ダイアログが表示されるのはなぜですか?
- このダイアログだけで起動しないようにこのアプリを構成するにはどうすればよいですか?同じ「親」アクティビティとその上のダイアログで(つまり、そのままにして)アプリを再起動するか、親アクティビティだけを実行してダイアログを閉じても問題ありません。