关于两个互相交互的activity的生命周期问题

adventurelw 2010-12-17 05:45:41
有两个activity,A可以通过点击列表到B,B可以通过menu选项到A
从A到B需要调用B的onCreate, onStart
从B通过menu选项到A需要调用B的onPause, onStop(没有onDestroy)
问题:当再次从A通过点击列表到B时,会调用onCreate方法,这里B根本没有onDestroy,为啥还会调用onCreate方法呢?
API上关于acitivity的介绍那张图,画了一条从onStop到onCreate的线,说当其他应用需要内容进程被kill的时候会重新到达onCreate
想了解这应该在具体什么情况下发生?因为我这里最终仍然没有调用onDestroy,只是发生上面操作时都要调用onCreate方法。
当使用back按键(机器上的那个)从B返回到A时,可以看到会调用onDestroy的,这个也比较好理解,就是上边那个,没有onDestroy,只是onCreate,这不会造成内存泄漏么。。。。。
另外,我需要在B中注册广播接收器,那应该是在onCreate注册,onStop中注消;还是在onStart中注册,onStop中注消?因为还有一些数据的初始化问题(每次进入B都需要初始化的)是应该在onCreate还是在onStart中,因为按照流程来看,onCreate的调用比较无中生有,也不知道是不是可靠。。。。
恳请达人给予指点,万分感谢。
...全文
276 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
adventurelw 2010-12-17
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 dylqxy 的回复:]
startActivity肯定会调用onCreate,除非最前面的Activity结束(finish())掉,这样下面的Activity才会显示
[/Quote]
啊,是吗?
API文档里没写这个。。。。。。
还是有些不明白,假如不通过startActivity进行操作,而是通过back键来操作,那么从A到B时,A是stop状态;点击back键返回A,A其实不需要onCreate,而是onRestart就可以恢复。这是因为A处于栈底,先进后出。
但通过startActivity,那么从A到B再到A,A仍然需要onCreate重新创建一次才行,但实际上前一个A只是处于stop状态,可以恢复啊。。。。。。这样很没效率吧。撇开系统很需要内存的时候。
DYLQXY 2010-12-17
  • 打赏
  • 举报
回复
startActivity肯定会调用onCreate,除非最前面的Activity结束(finish())掉,这样下面的Activity才会显示

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧