Activity的生命周期
onCreate(Bundle savedlnstanceState) --> 初始化,仅仅被调用一次
onStart() --> 开始
onRestart() --> 重置
onResume() --> 获取焦点
onPause() --> 暂停
onStop() --> 停止
onDestroy() --> 销毁
开始Activity:在这个阶段依次执行3个生命周期的方法
onCreate() --> onStart() --> onResume()
Activity失去焦点:如果Activity失去焦点,会依次执行2个生命周期的方法
onPause() --> onStop()
Activity重新获得焦点:如果Activity重新获得焦点,会依次执行3个生命周期的方法
onRestart() --> onStart() --> onResume()
关闭Activity:当Activity被关闭时会依次执行3个生命周期的方法
onPause() --> onStop() --> onDestroy()
横竖屏切换的生命周期
Activity onDestory() --> onCreate() --> onStart() --> onResume()
Service的生命周期
onCreate() --> 初始化,第一次startService时调用
onStartCommand() --> 启动
onBind() --> 绑定
onUnbind() --> 解绑
onDestory() --> 销毁
在Service每一次的开启关闭过程中,只有onStartCommand()可被多次调用(通过多次startService()调用),其他onCreate(),onBind(),onUnbind(),onDestory()在一个生命周期中只能被调用一次。
对于startService()服务:
onCreate() --> onStartCommand()
如果context.stopService() --> onDestory()
对于bindService()服务:
onCreate() --> onBind()
如果Activity被销毁 --> onUnbind() --> onDestory()
Fragment的生命周期
onAttach() --> 当Fragment被加入Activity时调用,可以获得Activity传递的值
onCreate() --> 实例化成员变量
onCreateView() --> 给当前Fragment绘制UI布局,可以使用线程更新UI
onActivityCreated() --> 表示Activity执行onCreate()方法完成时调用
onStart() --> 开始
onResume() --> 获得焦点
onPause() --> 暂停
onStop() --> 停止
onDestoryView() --> 表示Fragment销毁相关联的UI布局
onDestory() --> 销毁Fragment对象
onDetach() --> 脱离Activity
一旦Activity进入resumed状态(也就是running状态),你就可以自由地添加和删除Fragment了。因此,只有当Activity在resumed状态时,Fragment的生命周期才能独立的运转,其它时候是依赖于Activity的生命周期变化的。
当一个Fragment被创建时
onAttach() --> onCreate() --> onCreateView() --> onActivityCreated()
当这个Fragment对用户可见时
onStart() --> onResume()
当这个Fragment进入“后台模式”的时候
onPause() --> onStop()
当这个Fragment被销毁(或持有它的Activity被销毁)时
onPause() --> onStop() --> onDestoryView() --> onDestory() --> onDetach()