8、执行步骤4

  onConfigurationChanged-->

  onConfigurationChanged-->

  总结:

  1、不设置Activity的android:configChanges时,切屏会重新调用各个生命周期,切横屏时会执行一次,切竖屏时会执行两次

  2、设置Activity的android:configChanges="orientation"时,切屏还是会重新调用各个生命周期,切横、竖屏时只会执行一次

  3、设置Activity的android:configChanges="orientation|keyboardHidden"时,切屏不会重新调用各个生命周期,只会执行onConfigurationChanged方法

  总结一下整个Activity的生命周期

  补充一点,当前Activity产生事件弹出Toast和AlertDialog的时候Activity的生命周期不会有改变

  Activity运行时按下HOME键(跟被完全覆盖是一样的):onSaveInstanceState --> onPause --> onStop,再次进入激活状态时: onRestart -->onStart--->onResume

  BroadcastReceive广播接收器生命周期:

  生命周期只有十秒左右,如果在 onReceive() 内做超过十秒内的事情,会报ANR(Application No Response) 程序无响应的错误信息

  它的生命周期为从回调onReceive()方法开始到该方法返回结果后结束

  Service服务生命周期:

  图3.2service生命周期图

  Service完整的生命周期:从调用onCreate()开始直到调用onDestroy()结束

  Service有两种使用方法:

  1>以调用Context.startService()启动,而以调用Context.stopService()结束

  2>以调用Context.bindService()方法建立,以调用Context.unbindService()关闭

  service重要的生命周期方法

  当用户调用startService ()或bindService()时,Service第一次被实例化的时候系统会调用,整个生命周期只调用1次这个方法,通常用于初始化设置。注意:多次调用startService()或bindService()方法不会多次触发onCreate()方法

  void onCreate()

  当用户调用stopService()或unbindService()来停止服务时被系统调用,(整个生命周期只调用1次)用来释放onCreate()方法中创建的资源

  void onDestroy()

  通过startService()方法启动的服务

  初始化结束后系统会调用该方法,用于处理传递给startService()的Intent对象。如音乐服务会打开Intent 来探明将要播放哪首音乐,并开始播放。注意:多次调用startService()方法会多次触发onStart()方法

  void onStart(Intent intent)