【发布时间】:2016-12-19 20:59:49
【问题描述】:
想请人解释一下,HandlerThread和IntentService的主要区别是什么,主要的用例场景是什么?
我了解 HandlerThread 包含一个 Looper,它管理由 Handler 提供的 messageQueue。据我了解,您可以为 HandlerThread 推送任务并且它将执行。它非常适合用于非 UI 相关的长时间运行操作,您可以通过 runOnUiThread() 将结果推送回 UI。
相比之下,IntentService 适合长时间运行的非 UI 相关操作,可以按顺序执行任务,当它完成调用 selfStop() 以关闭自身完成的作业时。如果 IntentService 正在处理一项任务,当一个新请求到达时,它会添加到队列中并处理第二个,当它完成第一个时。
在我看来,他们以同样的方式做着同样的工作。 假设我有一个应用程序,用户点击一个按钮,我开始下载一个文件。如果用户多次点击,则新任务将排队,仅在第一个任务完成时启动第二个任务。 我应该使用什么? IntentService 还是 HandlerThread?
【问题讨论】:
标签: android android-intentservice android-handlerthread