哪个最好:runonuithread或asynctask android方法:thread?

时间:2013-09-27 13:34:55

标签: java android multithreading

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

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:1)

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

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

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

编辑: 正如Geobits所指出的那样,你不必等到任务完成才能发布更新,因为AsyncTask正好具有一个publishProgress方法。