美文网首页
Service vs IntentService的区别

Service vs IntentService的区别

作者: 寒冬_腊月 | 来源:发表于2018-03-19 16:49 被阅读34次

什么时候使用

  • Service可以用于没有UI的任务,但不应该太长。如果您需要执行长时间任务,则必须在Service中使用线程
  • IntentService可用于长时间的任务,通常不会与主线程通信。如果需要通信,可以使用主线程处理程序或广播意图。另一种使用情况是需要回调(意图触发任务)。

怎样触发

  • Service由调用方法startService()触发
  • IntentService是使用Intent触发的,它产生了一个新的工作线程,并且在这个线程上调用了onHandleIntent()方法

从哪里触发

  • Service和IntentService可以从任何线程,活动或其他应用程序组件中触发

运行在哪里

  • Service在后台运行,但它在应用程序的主线程上运行
  • IntentService在单独的工作线程上运行

限制/缺点

  • Service可能会阻止应用程序的主线程
  • IntentService不能并行运行任务。因此,所有连续的Intent都将进入工作线程的消息队列并将按顺序执行

怎样停止

  • 如果你实现了一个Service,你有责任通过调用stopSelf()或stopService()来完成它的工作。 (如果你只想提供绑定,你不需要实现这个方法)
  • IntentService在处理完所有启动请求后停止服务,因此您不必调用stopSelf()

参考

stackoverflow

相关文章

网友评论

      本文标题:Service vs IntentService的区别

      本文链接:https://www.haomeiwen.com/subject/zmupqftx.html