Android 进阶(2) - Activity 生命周期 下

Activity 的生命周期分为正常情况下的生命周期,以及异常情况下的生命周期,两者略有不同。上篇是正常情况,下篇是异常情况。

Activity 生命周期(异常情况)

异常情况下,生命周期比正常情况多了两个调用方法:onSaveInstanceState 和 onRestoreInstanceState。

Activity 在运行中因为系统配置改变(如屏幕旋转)或者内存不足低优先级而被系统杀死时,会调用 onSaveInstanceState 来保存当前 Activity 的状态,类似于快照。onSaveInstanceState 的调用时机在 onStop 之前,有可能在 onPause 之前或之后。接着会重新创建 Activity。

在 Activity 在异常情况下需要被重新创建时,系统会保存当前 Activity 的视图结构,并且在 Activity 重启后为我们恢复。当 Activity 被重新创建后,系统会调用 onRestoreInstanceState ,并且把 Activity 销毁时 onSaveInstanceState 方法所保存的 Bundle 对象作为参数同时传给 onRestoreInstanceState 和 onCreate 方法。我们可以在 onRestoreInstanceState 和 onCreate 方法中取出之前保存的数据并恢复。onRestoreInsanceState 的调用时机在 onStart 之后。

  • onRestoreInstanceState 在 Activity 确实被销毁时才会调用,因此 onSaveInstanceState 和 onRestoreInstanceState 未必成对使用,如用户按 HOME 键返回桌面,又立刻返回 Activity。

笔者水平有限,请使劲评论。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 启动与销毁Activity 不同于使用 main() 方法启动应用的其他编程范例,Android 系统会通过调用对...
    安卓Boy阅读 1,797评论 3 5
  • 您的应用中的Activity应该做到如下需求: 1.用户在使用应用时接听来电或切换到另一个应用,它不会崩溃。 2....
    正阳Android阅读 542评论 1 0
  • 把孩子哄睡,收拾完卫生就这个时间了。作为家庭妇女来说,每天都忙忙碌碌,不知忙的啥,看不到一点成绩和功劳。但这也是成...
    做自己命运的主宰阅读 297评论 0 0
  • 自去年九月来到上海之后,我每天早上起床时只有一个感觉——压抑。 铺天盖地的压抑。阴天时会想:天怎么又阴沉沉的?下雨...
    我家有棵葡萄树阅读 305评论 0 1
  • 这些天雾霾很严重,我的心情也随着这灰蒙蒙的天气变得很糟糕,总是嗜睡不知道该干什么,听课也丝毫听不进去,呢么我讲个...
    白若樰阅读 136评论 0 0