
有人可以告诉我一个可以使用服务无法完成的IntentService的事情的例子(反之亦然)吗?@H_419_1@
我也相信IntentService在不同的线程中运行而Service不在.因此,据我所知,在自己的线程中启动服务就像启动一个IntentService.不是吗?@H_419_1@
如果有人可以帮我解决我的两个问题,我将不胜感激.@H_419_1@
解决方法:@H_419_1@
Tejas Lagvankar写了一篇关于这个主题的post.
以下是Service和IntentService之间的一些主要区别.@H_419_1@
什么时候用?@H_419_1@
>该服务可用于没有UI的任务,但不应太长.如果需要执行长任务,则必须使用Service中的线程.
> IntentService可用于长任务,通常不与主线程通信.如果需要通信,可以使用主线程处理程序或广播意图.另一种使用情况是需要回调时(Intent触发的任务).@H_419_1@
怎么触发?@H_419_1@
>通过调用方法startService()触发服务.
>使用Intent触发IntentService,它生成一个新的工作线程,并在此线程上调用onHandleIntent()方法.@H_419_1@
触发来自@H_419_1@
>可以从任何线程,活动或其他应用程序组件触发Service和IntentService.@H_419_1@
运行@H_419_1@
>服务在后台运行,但它在应用程序的主线程上运行.
> IntentService在单独的工作线程上运行.@H_419_1@
限制/缺点@H_419_1@
>服务可能会阻止应用程序的主线程.
> IntentService无法并行运行任务.因此,所有连续的意图将进入工作线程的消息队列,并将按顺序执行.@H_419_1@
什么时候停?@H_419_1@
>如果您实现了服务,则通过调用stopSelf()或stopService(),您有责任在工作完成后停止服务. (如果您只想提供绑定,则不需要实现此方法).
> IntentService在处理完所有启动请求后停止服务,因此您永远不必调用stopSelf().@H_419_1@ 总结
以上是内存溢出为你收集整理的android – 服务与IntentService全部内容,希望文章能够帮你解决android – 服务与IntentService所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)