-2

在 jelly bean 4.1.1 中运行时,我的应用程序中有一个奇怪的行为,当我启动一个 Activity 并按下后退按钮返回到第一个 Activity 时,它也通过调用重新创建它onCreate,我做了什么我也处理了配置更改与第一个活动,因此它不会在配置更改时重新创建,但那没有做任何事情。!!!!为什么果冻豆中的Activity生命周期有一个奇怪的行为。您可以明白我的意思,只需创建一个简单的 Android 项目并创建两个活动,从第一个导航到活动,然后按返回按钮,然后查看日志 onCreate on Activity 1 将被调用!!!!!!

4

3 回答 3

4

如果操作系统确定它需要资源,则无法保证操作系统不会随时终止您的后台活动。只是一个猜测,但onCreate在这些情况下可能会被调用,因为系统会在您返回第一个 Activity 之前杀死它。

编辑:http: //developer.android.com/guide/components/activities.html#Lifecycle

如果一个活动被暂停或停止,系统可以通过要求它完成(调用它的 finish() 方法)或简单地终止它的进程来将它从内存中删除。当活动再次打开时(在完成或杀死之后),必须重新创建它。

于 2012-09-07T17:39:31.080 回答
1

这是给你的另一个参考:

http://developer.android.com/training/basics/activity-lifecycle/recreating.html http://developer.android.com/training/basics/activity-lifecycle/starting.html

在第一个链接中:

如果您的活动当前已停止并且长时间未使用,或者前台活动需要更多资源,系统也可能会破坏您的活动,因此系统必须关闭后台进程以恢复内存。

...

但是,如果系统由于系统限制(而不是正常的应用程序行为)而破坏了 Activity,那么尽管实际的 Activity 实例已经消失,但系统会记住它的存在,因此如果用户导航回它,系统会创建一个新的使用一组保存的数据来描述活动被销毁时的状态的活动实例。系统用来恢复之前状态的保存数据称为“实例状态”,是存储在 Bundle 对象中的键值对的集合。

于 2012-09-07T18:19:20.137 回答
1
  1. 打开电话设置屏幕
  2. 单击开发人员选项(如果不存在,请按大约电话 5-6 次)
  3. 在应用程序类别的开发者选项中,取消选中不要保留活动标志
于 2013-09-25T05:47:53.903 回答