Activity生命周期:

通过方法调用实现Activity状态的迁移


创建---->运行       onCreate   onStart   onResume

运行---->关闭/销毁  onPause    onStop    onDestroy

运行---->暂停       onPause ---->恢复   onResume                    

运行---->停止       onPause    onStop---->恢复 onRestart  onStart   onResume


暂停或停止--->强制销毁--->重新运行 onCreate


200121102.png


service生命周期:

200121222.png


注:如果已经startservice,再次start的话,会调用onbindservice。



绑定的服务会随着所绑定的那个activity的销毁而销毁,可以在bind的时候同时start,避免服务被自动销毁:

201940459.png



  service的生命周期,从它被创建开始,到它被销毁为止,可以有两条不同的路径:

A started service

  被开启的service通过其他组件调用 startService()被创建。

  这种service可以无限地运行下去,必须调用stopSelf()方法或者其他组件调用stopService()方法来停止它。

  当service被停止时,系统会销毁它。

 

A bound service

  被绑定的service是当其他组件(一个客户)调用bindService()来创建的。

  客户可以通过一个IBinder接口和service进行通信。

  客户可以通过 unbindService()方法来关闭这种连接。

  一个service可以同时和多个客户绑定,当多个客户都解除绑定之后,系统会销毁service。