使用后台服务 IntentService

Service 和 Activity 属于同一级别的应用组件,默认情况下它运行在宿主进程的主线程中,因此,不要因为 Service 没有运行在前台,就误以为它可以毫无条件地执行耗时工作(CPU intensive work),否则将导致 ANR。

 

       而 IntentService 却是个例外,它开辟了一个后台工作线程来执行耗时工作,你可以将离线的耗时工作委托给 IntentService 去完成而不必阻碍主线程循环(main thread loop)

 

       你可以通过 LocalBroadCastManager 将耗时工作的结果或运行状态广播给进程内部启动该服务的 Activity 或者用 Notification 机制发送通知。

 

       思考:我们使用的 android APP 中不乏很多 Notification 消息通过状态栏通知我们,即使你退出了这个 APP,这可以用什么机制来实现?

 

       关于 IntentService 的更多内容请参考 SDK 文档:

 

https://developer.android.com/training/run-background-service/index.html

https://developer.android.com/reference/android/app/IntentService.html

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值