cod*_*ber 6 android kill android-activity
如果你有一个Android应用程序有多个活动,活动A启动B,所以如果活动b崩溃,该过程被杀死但由Android操作系统恢复并再次启动活动A而不是仅仅关闭应用程序,为什么?
您抱怨 Android 会在崩溃后尝试优雅地恢复您的应用程序的状态?;)
这是Android资源管理和Activity生命周期发挥作用的结果。请记住,单个任务可以由多个可能跨越多个进程或应用程序的活动组成。正如此处所述: http: //android-developers.blogspot.com/2010/04/multitasking-android-way.html Android 进程不会在传统的 *nix 进程意义上“干净地”关闭。您的应用程序的组件接收生命周期事件,但在某个点之后,应用程序可以在没有进一步警告的情况下被终止,以便系统可以回收其资源。
例如,用户可能正在浏览网页,单击 YouTube 链接启动 YouTube 应用程序,然后单击共享按钮启动他们最喜欢的社交网络应用程序并发布视频链接。这些都是同一个任务的一部分;如果用户按回键几次,他们将回到浏览器中开始的页面。
一旦您启动社交网络应用程序,系统可能会认为它的内存不足,并且会终止浏览器的进程以释放更多内存。(毕竟,它不在前面,用户不会注意到。)当用户按下后退按钮返回浏览器 Activity 时,它会重新启动并重建用户离开时的最后状态。最坏的情况是,用户在重新初始化时会经历短暂的延迟。
但是,即使在同一进程中的同一应用程序中,也可能会发生恢复先前活动状态的相同事件序列。在您的场景中,活动 B 由于崩溃而关闭。因此,系统会按照它一贯的方式执行操作 - 返回到前一个 Activity:Activity A。但是 Activity A 的进程已不再存在(它崩溃了!),因此系统会重新启动它,并且可以重建其之前的状态。
| 归档时间: |
|
| 查看次数: |
1661 次 |
| 最近记录: |