3

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

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

现在 Instance1 在没有调用的情况下被终止OnPause()

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

4

2 回答 2

4

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

所以你可以计划 onPause() 总是被调用。

于 2012-05-26T19:21:39.927 回答
0

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

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

这是保证被调用的方式。

于 2012-05-26T19:25:31.533 回答