runOnUiThread方法和Handler有什么区别?哪一个最好用?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了runOnUiThread方法和Handler有什么区别?哪一个最好用?相关的知识,希望对你有一定的参考价值。

我通常使用这种方法

 runOnUiThread (new Runnable () {

     @Override
     public void run () {

     }

 });

在主线程中启动一些进程。就在最近我发现了这个

new Handler(Looper.getMainLooper()).post(new Runnable () {

    @Override
    public void run () {
        // this will run in the main thread
    }

});

我的问题是两种方法之间有什么区别,哪种方法最好用?

答案

两者实际上是相同的。 runOnUiThreadHandler#post都在UI线程中运行传递的Runnable

仅供参考,你也可以通过调用方法Runnable在任何View的帮助下在UI线程上执行任何View#post(runnable)

由于所有方法都在内部使用Handler,因此所有方法都相同,并且使用任何这些方法都没有任何区别。

以上是关于runOnUiThread方法和Handler有什么区别?哪一个最好用?的主要内容,如果未能解决你的问题,请参考以下文章

更新UI——Handler&runOnUiThread

runOnUiThread()方法

Android中的runOnUiThread

Android异步消息机制

2016年03月25日

AsyncTask使用与源码解析