首页 > 其他 > 详细

更新UI方法

时间:2014-03-20 05:54:12      阅读:469      评论:0      收藏:0      [点我收藏+]

1.Handler

见前一篇。

2.Activity.runOnUiThread(Runnable)

Activity类的方法。如果当前线程为ui线程,则立即执行;否则,将参数中的线程操作放入到ui线程的事件队列中,等待执行。

1
2
3
4
5
6
Activity.this. runOnUiThread(new Runnable() {
    @Override
    public void run() {
        // refresh ui 的操作代码
    }
});

相对于Handler轻量,方便。

3.View.post(Runnable)

将操作放入到message队列中,如果放入成功,该操作将会在ui线程中执行,并返回true,否则返回false。

在Post(Runnable action)方法里,View获得当前线程(即UI线程)的Handler,然后将action对象post到Handler里。在Handler里,它将传递过来的action对象包装成一个Message(Message的callback为action),然后将其投入UI线程的消息循环中。在Handler再次处理该Message时,有一条分支(未解释的那条)就是为它所设,直接调用runnable的run方法。而此时,已经路由到UI线程里,因此,我们可以毫无顾虑的来更新UI。

4.View.postDelayed(Runnable, long)

同上,加了个delay而已。

 

3和4中,如果view没有被attach,则均存在潜在的内存泄漏的问题! 

更新UI方法,布布扣,bubuko.com

更新UI方法

原文:http://www.cnblogs.com/xichao/p/3611964.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!