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

时间:2018-09-03 15:47:48

标签: java android thread-safety

我通常使用

 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
    }

});

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

1 个答案:

答案 0 :(得分:1)

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

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

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