onCreate:表示Activity正在被创建,可以做一些初始化的工作,例如加载布局,初始化变量
onRestart:表示Activity被重新启动,表示当前Activity正在由不可见变得可见
onStart:表示Activitity正在被启动,对用户可见,但是还没有到前台,还无法和用户交互
onResume:表示Activity可见,并且出现在前台可以和用户交互
onPause:表示Activity正在停止,此时可以做一些数据存储或停止动画等工作
onStop:表示Activity即将停止,可以做一些回收工作,比如解注册广播接收器,remove 一些Listener
onDestroy:表示Activity即将被销毁,可以释放资源和最终的回收工作
其中onCreate和onDestroy,onStart和onStop,onResume和onPause是配对的
异常情况下的生命周期,当资源相关的系统配置发生改变时,默认情况下,Activity会被销毁然后重新创建,销毁时,onPause,onStop,onDestroy均会被调用,而且在onStop之前会调用onSaveInstance保存当前的Activity状态,Activity被重新创建时,会在onStart后调用onRestoreInstance恢复之前保存的数据,可以通过设置属性Android:configChanges属性阻止Activity重新被创建,这个时候Activity不会被重新创建,onSaveInstance和onRestoreInstance也不会被调用,系统会调用onConfigurationChanged方法。
当系统内存不足时,优先级低的Activity被杀死,Activity优先级:前台Activity优先级最高,可见但非前台Activity,后台Activity(已经调用了onStop)优先级最低,当系统空间不足时,系统会按照优先级杀死Activity所在的进程,并在后续通过onSaveInstance和onRestoreInstance来存储和恢复数据,如果一个进程中没有运行的组件,那么这个进程很容易被杀死