Lal*_*ani 19

来自官方的Handler文档

处理器

Handler有两个主要用途:

(1)安排消息和runnables作为将来的某个点执行.

(2)将要在不同于自己的线程上执行的操作排入队列.

简而言之,Handler用于管理不同的Runnables.

runOnUiThread

它用于在UI线程上执行非UI操作,例如,如果要从AsyncTask的doInBackground()更新屏幕,则必须编写更新runOnUiThread()内部UI的代码部分.但同样会阻止用户界面.

  • @Aleross你不应该在runOnUiThread上运行繁重的任务,只是为了"快速"更新ui. (2认同)

Sha*_*afi 7

runOnUiThread基本上适合在AsyncTask调用之前显示进度对话框或进行一些UI操作.如果你想在线程执行过程中更新UI,那么最好的方法是创建一个Handler更新你的UI,然后让线程继续运行,例如,几秒后定期更新文本视图,比如说定时器功能.

  • 这个答案并没有解释它们之间的真正区别. (21认同)