0

我有一个已经在市场上销售一段时间的 android 应用程序,我现在正在大修。我正在使用新的 One x 进行测试,并注意到一些奇怪的事情......

  1. 如果我在手机上运行,​​请单击主页按钮,以便应用程序进入后台,我会得到我在 onPause 等中的正常打印输出。onDestroy 不会被调用,这使您假设该过程仍在运行。

  2. 但是,当我进入设置/应用程序/运行时,它没有列出!!只要我在“正在运行”屏幕上,我会在 android 日志中每隔几秒就会得到一个重复打印输出:

    06-20 15:04:42.435:INFO/RunningState(16694):未知的非服务进程:XXX #16558

  3. 如果我然后再次单击我的应用程序图标,我的生命周期方法会被调用,就好像我的应用程序没有启动一样,即 onCreate、onResume 等会再次被调用!!

我不知道为什么会这样,它不会发生在 Galaxy2 或我刚刚尝试过的 Note 上,我在那里得到了“预期的”生命周期调用。

有人有什么想法吗?对我来说,电话好像坏了,但我只是一个人,我还没有找到任何其他报告,所以我不明白这是怎么回事......

编辑:还在 HTC Legend 上测试了相同的代码,没有问题......

4

2 回答 2

2

There's no garantee that onDestroy will be called when you exit / finish an activity:

From http://developer.android.com/reference/android/app/Activity.html#onDestroy()

There are situations where the system will simply kill the activity's hosting process without calling this method (or any others) in it, so it should not be used to do things that are intended to remain around after the process goes away.

Also see this thread here in SO

Activity OnDestroy never called?

于 2012-06-20T21:55:46.107 回答
1

在 Android ICS 中,为开发人员提供了一些新设置,其中包括“不保留活动”。它默认被清除,但您的设备可能以其他方式配置。尝试打开/关闭此复选框,看看您的活动生命周期会发生什么。

于 2012-06-20T22:05:43.517 回答