Android中更新UI常见的方式有4种:runOnUIThread、handler post、handler sendMessage、view post.

    先使用handler post的方法更新UI

android中更新UI的几种方式_Android

    handler.post(r)方法中需要传递进去一个Runnable对象,可以直接在里面新建一个Runnable对象,接着在Runnable的run方法中对UI进行操作

进入 handler.post(r)的源码中

android中更新UI的几种方式_action_02

    可以看到,其实这种方法里面也是通过发送延迟消息的方式对UI进行操作的。

    

    下面用handler sendMessage更新UI

android中更新UI的几种方式_新建_03

android中更新UI的几种方式_Android_04

    该方法就是通过在子线程中发送消息通知主线程更改UI,这是比较常见的方式


    下面用runOnUIThread的方法

android中更新UI的几种方式_新建_05

runOnUIThread(action)需要传递一个Runnable对象作为参数,此时可以new一个Runnable再实现它的run方法,在run方法里对UI进行操作

android中更新UI的几种方式_Android_06

从源码当中可以看到,系统先会判断该线程是否为UI线程,如果不是就通过handler去更新,是就通过UI线程的run方法更新


    下面用view post方法

android中更新UI的几种方式_Android_07

源码

android中更新UI的几种方式_新建_08


其实这四种方法都是通过handler对UI进行更新的,只是具体方法形式存在大同小异的区别而已