Service 生命周期(理论)

看了好几篇文章,总结了一下Service的生命周期     图片来源 

Service生命周期分为

      1、手动调用   2、内部自动调用

之前我一直不清楚为什么有两种生命周期 其他像Activity,Fragment之类的都是整整齐齐的一排 后来看了这个图才懂

 手动调用生命周期 系统会自动调用对应的生命周期 两者是一起的。。。。

手动调用生命周期又分为两种

startService 启动服务  ,bindService 绑定服务,

两个也可以一起用 合起来就是 启动+绑定。。。

startService和bindService的区别:

startService启动服务:

  1. onStartCommand()方法一旦执行,如果不调用stopService就会一直在后台运行(或stopSelf方法),当然如果系统资源不足,android系统也可能结束服务。

  2. startService可以执行无数次,关闭服务时手动调用一次stopSeervice就可以了

  3. onStartService方法只有startService才可以调用

  4. 只能开启&关闭Service ,无法操作

bindService绑定服务:

  1. 绑定之后如果绑定的组件都被干掉了(如:finish())就会自动调用onDestroy方法销毁服务,

  2. 当然 手动调用unbindService方法也可以解绑 因为可以多绑定 所以只有全部解绑后才会自动销毁

  3. 手机横竖屏切换也好锁屏也好只要切换时绑定的activity执行了onDestroy方法就会断开服务 绑定的服务全部断开也会自动销毁

  4. 除了绑定Service,还能操作Service

说不上是共同点 就是写一些其暂时不知道怎么分类的知识:

  1.  onCreate()方法只会执行一次  

  2. 两者一起调用时需要既手动调用unbind全部解绑又要手动调用stopService才可以关闭服务

  3. 服务销毁的原则是其上没有一个绑定者,并且处于停止状态,这样才会调用onDestory。

    

猜你喜欢

转载自blog.csdn.net/qq_42259105/article/details/82387318
今日推荐