繁体   English   中英

在模拟器中重新启动活动时未调用OnPause()

[英]OnPause() not called when relaunch activity in emulator

我选择将OnPause()方法中的持久应用程序状态保存到我的数据库中,因为根据活动生命周期的文档,保证在应用程序被杀死之前调用OnPause()

现在我使用eclipse和avd模拟器(api level 8)面临以下行为:
1.我通过eclipse启动我的应用程序 - Instance1
2.我再次通过eclipse启动我的应用程序 - Instance2

现在Instance1正在终止而不调用OnPause()

有人可以解释一下为什么没有调用OnPause()吗? 我认为保证永远被称为。 如果不是这种情况,也许是因为eclipse终止Instance1进程的方式,那么我想知道我是否可以改变它。 非常感谢。

当您通过eclipse启动应用程序时,它将有效地从已经在设备或模拟器上运行的同一应用程序的任何实例中删除地毯。 这在实践中永远不会发生,只有在从eclipse运行时才会发生。

因此,您可以计划onPause()始终被调用。

你的意思是你通过eclipse启动应用程序 - 实例1和2?

当单击运行按钮时,模拟器(在您的情况下或真实设备中)运行您的应用程序。 请不要在其他AVD中运行它(如果我根据你的实例1和2得到正确的话)。 如果你已经在onCreate()和onPause()方法中添加了日志代码,例如Log.i(TAG,“我在onCreate()!”);,你应该在logcat中看到它。 因此,当您启动应用程序时,您将看到onCreate消息,当您单击主页按钮时,您将看到onPause()消息。

这是保证被调用的方式。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM