我有一个以对话为主题的活动。我已经看到,如果对话框显示,然后我按下主页按钮,然后使用任务管理器,重新启动应用程序,该对话框活动将是应用程序启动的活动,没有其他活动可以返回至。也就是说,加载对话框活动时运行的活动未运行。所以我只是将这个以对话为主题的活动悬停在桌面上。那讲得通。
查看Android活动生命周期,操作系统会记住最后一个活动并尝试重新启动。所以我在我的活动中创建了所有on *方法(onResume,onRestart等)。我发现的确是令人费解的。当我从任务管理器重新启动应用程序时,会调用以下方法:
onCreate()
onResume()
onStop()
onDestroy()
我真的只是期待
onRestart()
onCreate()
onResume()
答案 0 :(得分:1)
在这种情况下,您应该在对话框代码中使用finish()
。当用户从您的应用程序转换时,您希望这样做(当他们转到主页按钮,他们接到电话等时会发生这种情况......)。在这种情况下,您可能希望在对话框的finish()
中调用onStop()
。调用完成当前活动将其从堆栈中删除,从根本上获得您描述的行为。