Android生命周期分析

来源:互联网 发布:淘宝服装一件代发货源 编辑:程序博客网 时间:2024/06/15 08:32

文章摘自Android开发艺术探索

1.正常情况下生命周期的分析

(1)onCreate: activity被创建的时候调用,用于初始化数据

(2)onStart: 表示activity正在被启动,此时activity已经可见,只是没有出现在前台

(3)onResume: 表示activity已经可见,并且出现在前台并开始活动

(4)onPause: 表示activity正在停止,正常情况下,onStop就会调用

(5)onStop: 表示activity即将停止。可做一些稍微重量级的回收工作,但是不能太耗时

(6)onDestory: 表示activity即将被销毁,可以做一些回收工作和最终资源的释放

(7)onRestart: 表示activity正在被重新启动,此时onCreate不会再被调用

Activity启动的过程:启动activity的请求会有Instrumenttation来处理,然后他通过Binder向AMS发请求,AMS内部维护着一个ActivityStack并负责栈内的Activity的状态同步,AMS通过ActivityThread去同步Activity的状态从而完成时生命周期方法的调用。

2.异常情况下生命周期的分析

(1)相关资源的系统配置发生改变导致Activity被杀死并重新创建
当系统配置发生改变后,Activity会被销毁,其onPause,onStop,onDestory均会被调用,同时由于Activity实在异常的情况下终止的,系统会调用onSaveInstanceState来保存当前的Activity的状态,这个方法的调用时机是在onStop之前,它和OnPause没有既定的时序关系,有可能之前,有可能之后,系统只有在Activity异常终止的情况系才会调用onSaveInstanceState和onReStoreInstanceState来存储和恢复数据,其他情况不会触发这个过程。

(2)资源内存不足导致低优先级的Activity被杀死
一些后台工作不适合脱离四大组件而独自运行在后台中,比较好的方法是将后台工作放入Service中从而保证进程有一定的优先级。

0 0