【Android】android四大组件之Service使用方法总结

两种创建服务例子

Service生命周期

 

  • Start方式

服务需要注册,像静态广播接收器,在后台运行,但需要自启

 

 

服务实例只会有一个,所以startService()->onCreat()只会调用一次,再点击只调用onStartCommand(),stopService()->onDestroy()

 

 

 

  • Bind方式

bind启动方式

bindService(*Intent*,*ServiceConnection对象或Null*,)

unbindService(*ServiceConnection对象或Null*)只能一次,多按会报解绑定异常错误,绑定的服务必须解绑定,因为和启动源联系了

 

Service内部方法

 

ServiceConnection类

 

 

 

bindService()方法:服务与活动联系更加紧密,可以调用服务中方法

任何一个服务在整个应用程序范围内都是通用的,可以和任何一个其他活动绑定,绑定后还可获得相同的Binder实例

 

IntentService类:IntentService是继承于Service并处理异步请求的一个类,在IntentService内有一个工作线程来处理耗时操作,启动IntentService的方式和启动传统Service一样,同时,当任务执行完后,IntentService会自动停止,而不需要我们去手动控制。另外,可以启动IntentService多次,而每一个耗时操作会以工作队列的方式在IntentService的onHandleIntent回调方法中执行,并且,每次只会执行一个工作线程,执行完第一个再执行第二个,以此类推

所有请求都在一个单线程中,不会阻塞应用程序的主线程(UI Thread),同一时间只处理一个请求。那么,用IntentService有什么好处呢?首先,我们省去了在Service中手动开线程的麻烦,第二,当操作完成时,我们不用手动停止Service
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值