我正在使用嵌入在另一个内部的多个列表。这显然会降低App的速度,因此我想到了使用多线程。将单独的列表作为线程处理,然后将其中的数据作为单独的线程加载,以使其更快。
这是一个更好的方法吗?我可以根据它做出某些例子吗?甚至链接?
答案 0 :(得分:7)
Handler与应用程序的主线程相关联。它处理和调度从后台线程发送到app主线程的消息和runnable。
AsyncTask提供了一种处理后台线程的简单方法,以便通过耗时的操作来更新UI而不会阻塞它。
最好使用异步任务加载listview,这样就不会阻止主UI
答案 1 :(得分:0)
您的问题标题与问题正文不符,如果您将其更改为更好的关联,您会得到更好的回复。
请参阅以下问题以解释差异:How to know when to use an async task or Handler
那就是说,在你的情况下,你想要对列表框的填充进行分区而不是处理消息,所以AsyncTask最有意义。
答案 2 :(得分:0)
Handler和AsyncTasks是使用UI / Event Thread实现多线程的方法。
可以从任何线程创建处理程序,它可以在创建它的线程上运行。
它处理和调度从后台发送到创建它的线程的消息和runnable 。 我们应该考虑使用处理程序,我们想要发布延迟消息或按特定顺序向MessageQueue发送消息。
AsyncTask总是被触发或从主线程创建。
其方法onPreExecute(),onPostExecute(),onProgressUpdate()在主线程(或UI线程)上运行,doInBackground()在工作线程(或后台线程)上运行.AsyncTask可以正确,方便地使用UI线程。 该类允许执行后台操作并在UI线程上发布结果。
如果你想以一种简单方便的方式在app主线程和后台线程之间交换参数(从而更新UI),我们应该考虑使用AsyncTask。