我想请人解释一下,HandlerThread和IntentService之间的主要区别是什么,主要的用例场景是什么?
我知道HandlerThread包含一个 Looper,它管理由 Handler 提供的 messageQueue。据我了解,您可以为 HandlerThread 推送任务并且它将执行。用于非 UI 相关的长时间运行的操作非常有用,您可以通过runOnUiThread()将结果推送回 UI 。
相比之下,IntentService适合长时间运行的非 UI 相关操作,可以按顺序执行任务,当它完成调用 selfStop() 以关闭自己完成的作业时。如果 IntentService 正在处理一项任务,当一个新请求到达时,它将添加到队列中并处理第二个,当它完成第一个时。
从我的角度来看,他们以同样的方式做着同样的工作。假设我有一个应用程序,用户点击一个按钮,我开始下载一个文件。如果用户点击多次,一个新任务会排队,只有在第一个任务完成后才会启动第二个任务。我应该使用什么?IntentService 还是 HandlerThread?