我在我的应用程序中运行在jelly bean 4.1.1时有一个奇怪的行为,当我启动一个Activity并按下后退按钮返回到第一个活动它通过调用onCreate
重新创建它我做了什么我也处理了第一个活动的配置更改,所以它不会在配置更改时重新创建,但那没有做任何事情。 !!!!为什么果冻豆中的活动生命周期有一种奇怪的行为。你可以看到我的意思,只需创建一个简单的Android项目并创建两个活动,从第一个导航到活动,然后按回按钮,看到活动1上的日志onCreate将被调用!!!!
答案 0 :(得分:4)
如果确定需要资源,操作系统不会随时终止您的后台活动。只是一个猜测,但在这些情况下可能会调用onCreate
,因为系统会在您返回之前杀死第一个Activity。
修改:http://developer.android.com/guide/components/activities.html#Lifecycle
如果活动暂停或停止,系统可以通过要求它完成(调用其finish()方法)或简单地终止其进程来从内存中删除它。当活动再次打开时(在完成或杀死之后),必须全部创建它。
答案 1 :(得分:1)
以下是您的另一个参考:
http://developer.android.com/training/basics/activity-lifecycle/recreating.html http://developer.android.com/training/basics/activity-lifecycle/starting.html
在第一个链接中:
如果活动当前已停止且未长时间使用或前台活动需要更多资源,系统也可能会破坏您的活动,因此系统必须关闭后台进程才能恢复内存。
...
但是,如果系统因系统限制而破坏活动(而不是正常的应用程序行为),那么虽然实际的Activity实例已经消失,系统会记住它存在,如果用户导航回它,系统使用一组保存的数据创建活动的新实例,这些数据描述了活动在销毁时的状态。系统用于恢复先前状态的已保存数据称为“实例状态”,是存储在Bundle对象中的键值对的集合。
答案 2 :(得分:1)