美文网首页
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