安卓之生命周期

一、 Activity的生命周期

安卓之生命周期

1、 onCreate(): 当活动首次创建时调用,用于初始化操作。
2、 onReStart(): 当活动停止后重新启动该活动时调用。
3、 onStart(): 当活动被展示给用户时调用,调用之后活动处于可见状态。
4、 onResume(): 当活动将开始与用户进行交互时调用,调用之后活动处于可交互状态。
5、 onPause(): 当活动被部分覆盖时调用,调用之后活动处于不可交互状态。
6、 onStop(): 当活动被完全覆盖时调用,调用之后活动处于不可见状态。
7、 onDestroy(): 当活动被销毁时调用,用于资源的回收和关闭。

二、 不同场景下Activity的调用流程

1、 当从活动A点击进入活动B时:
onPause(A)->onCreate(B)->onStart(B)->onResume(B)->onStop(A)
2、 当活动B退出回到活动A时:
onPause(B)->onRestart(A)->onStart(A)->onResume(A)->onStop(B)
->onDestroy(B)
3、 当从活动A点击进入透明活动B时:
onPause(A)->onCreate(B)->onStart(B)->onResume(B)
4、 当透明活动B退出回到活动A时:
onPause(B)->onResume(A)->onStop(B)->onDestroy(B)
5、 不设置android:configChanges切横屏时:
onPause()->onStop()->onDestroy()->onCreate()->onStart()->onResume()
6、 不设置android:configChanges切竖屏时:
onPause()->onStop()->onDestroy()->onCreate()->onStart()->onResume()
->onPause()->onStop()->onDestroy()->onCreate()->onStart()->onResume()
7、 设置android:configChanges=“orientation”切横屏或竖屏时:
onPause()->onStop()->onDestroy()->onCreate()->onStart()->onResume()
8、 设置android:configChanges="orientation|keyboardHidden"切横屏或竖屏时(API>12时需加入screenSize):
onConfigurationChanged()

三、 Service的生命周期

安卓之生命周期

1、 onCreate(): 当服务首次创建时调用,用于初始化操作。
2、 onStartCommond(): 当另一个组件通过startService启动服务时调用。
3、 onBind(): 当另一个组件通过bindService绑定服务时调用。
4、 onUnBind(): 当另一个组件通过unbindService解绑服务时调用。
8、 onDestroy(): 当服务被销毁时调用,用于资源的回收和关闭。

四、 不同场景下Service的调用流程

1、 第一次调用startService启动服务:
onCreate()->onStartCommond()
2、 再次调用startService启动服务:
onStartCommond()
3、 调用bindService绑定服务:
onCreate()->onBind()
4、 同一个组件多次绑定服务不会重复调用onBind(),会返回绑定的同一个服务。
5、 调用unBindService解除绑定:
onUnBind()
6、解除所有绑定并且使用startService 启动的服务调用了stopService或自身调用了stopSelf,服务才会停止。

上一篇:js数组基本知识


下一篇:使用静态代理模式实现公用的报表导出功能