在应用程序中使用一个HandlerThread来进行不同的时间花费 Action (例如,排序或什至用于处理Web/文件流)是否是一种好方法?
更好地用于此目的的是:几个AsyncTask,几个Thread或一个HandlerThread,例如
http://hi-android.info/src/android/webkit/WebViewWorker.java.html

最佳答案

必须将耗时的操作(网络,数据库访问等)委派给某些类型的工作线程。阻塞主(UI)线程是 Not Acceptable 。
AsyncTask是一个高级对象。它使用内部HandlerExecutor来为您处理线程处理和线程间通信。它被设计用于(在非常常见的情况下)在后台执行某些操作并将结果推送到UI。

直接使用HandlerHandlerThread(或事件Thread)可以为您带来更大的灵活性,但需要付出更复杂的代码和一些细微的陷阱(例如How to Leak a Context: Handlers & Inner Classes)。

您做出的一种选择是串行或并行执行任务。 HandlerThread将序列化它们。对于AsyncTask,它取决于Android版本(但是可以覆盖)。每次创建Thread可能会导致并发线程过多。

关于java - 使用几个AsyncTask或HandlerThread(Pipeline Thread)更好?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8912817/

10-09 09:48