我有一个以对话为主题的活动。我已经看到如果对话框正在显示,然后我按下主页按钮,然后使用任务管理器,重新启动应用程序,该对话框活动将是应用程序启动的活动,没有其他活动可以返回至。也就是说,当我加载对话框活动时正在运行的活动没有运行。所以我只是让这个以对话框为主题的活动悬停在桌面上。那讲得通。
查看 Android 活动生命周期,操作系统确实会记住最后一个活动并尝试在那里重新启动。所以我在我的活动中创建了所有的 on* 方法(onResume、onRestart 等)。我的发现真的很令人费解。当我从任务管理器重新启动应用程序时,会调用以下方法:
onCreate()
onResume()
onStop()
onDestroy()
我真正期待的地方
onRestart()
onCreate()
onResume()
- 为什么 onStop 和 onDestroy 会立即被调用?为什么即使调用了 onDestroy,对话框仍然显示?
- 如何配置此应用程序,使其永远不会仅在此对话框上启动?我可以使用相同的“父”活动及其上方的对话框(即,就像我离开它时)重新启动应用程序,或者只运行父活动并且关闭对话框。