-5

我对 Android 编程语言中的线程有疑问;在线程中调用 UI 线程的正确方法是什么?是 runOnUIthread 方法还是 AsyncTask 方法?请问有论据吗?感谢您的建议。

4

2 回答 2

1

AsyncTask是一个提供线程使用和与 UI 线程通信的简单工具。

runOnUiThread方法不是线程。它用于与后台线程内的 UI 线程通信。例如,您在线程中有一些计算,并且您想要更新视图。为此,您必须在 UI-Thread 上运行修改 UI 的部分。因此,您可以使用此方法

于 2013-09-27T13:40:48.457 回答
1

这取决于您要完成的工作。如果它是一个小的一次性任务,比如通过 http 下载文件,那么 AsyncTask 可能会更容易实现。

但是,如果您有一个长时间运行的后台线程,并且需要在任务完成之前将更新发布到视图层次结构,那么 runOnUiThread 将是一个不错的选择。

主要区别在于 AsyncTask 要求您等到任务完成才能发布更新。

编辑:正如 Geobits 指出的那样,您不必等到任务完成才能发布更新,因为 AsyncTask 有一个 publishProgress 方法可以做到这一点。

于 2013-09-27T13:42:45.297 回答