基础总结之二:Service

今天昨天看完了Service基础,现在把零碎的东西总结下。
1.Service生命周期图谱
1)服务有2种启动模式,一种是startService启动,一直是bindService启动,不同的启动方式,走的生命周期函数不同,如上图。bindService启动的服务可以借助AIDL跨进程通信。
2)Service是一种没有UI的不可见服务,但是依旧是运行在UI线程中,所以如果有耗时操作,一般需要开启子线程操作。
3)startService启动服务,除第一次需要额外调用onCreate创建服务外,其他时候直接调onStartCommand。停止服务的话,可以通过stopService或stopSelf关闭服务。只需要调用一次stopXXX就会关闭服务,所以需要谨慎,可以通过使用stopSelf(int startId)来保证安全的关闭服务。
4)bindService绑定服务,一样首次需要调用onCreate创建,否则直接调用onBind。同一个服务可以被绑定多次,解绑多次,直到所有的应用控件都与该Service解绑后,该Service就会关闭销毁。
5)如果既调用了startService,又调用了bindService,那么需要调用一次stopXXX,同时解绑掉所有的控件与该Service的联系,Service才会被销毁掉。
1.2. Service生命周期图谱(2)
startService()可以看作开启了一个服务,只有调用stopService()或stopSelf()才可以将其停止。 
bindService()可以看做将服务绑定到组件中,生命周期随组件而定,直到组件销毁或者unBindService()后才消失。当没有startService时,bindService()首先会创建一个Service再进行绑定。如果已经有开启的Service,则会直接绑定。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值