首页 > 移动平台 > 详细

android 中使用View的消息队列api更新数据

时间:2014-10-27 23:10:39      阅读:745      评论:0      收藏:0      [点我收藏+]

基本上只要继承自View的控件,都具有消息队列或者handler的一些处理方法,下面是一些handler方法以及被View封装了的方法,其底层用的基本都是handler的api。

bubuko.com,布布扣

我么开一下postDelay的定义

android.view.View

 public boolean postDelayed(Runnable action, long delayMillis) {
        final AttachInfo attachInfo = mAttachInfo;
        if (attachInfo != null) {
            return attachInfo.mHandler.postDelayed(action, delayMillis);
        }
        // Assume that post will succeed later
        ViewRootImpl.getRunQueue().postDelayed(action, delayMillis);
        return true;
    }


不仅如此,Activity中也有一个方法,这个方法发送消息到UI线程,runOnUIThread(Runnable action);

先来看看他的视线

java.app.Activity

 public final void runOnUiThread(Runnable action) {
        if (Thread.currentThread() != mUiThread) {
            mHandler.post(action);
        } else {
            action.run();
        }
    }

很显然,当方法运行在UI线程上时立即执行,否则发送消息到UI线程之后再执行。

runOnUIThread又为我们省却了创建Handler的异步,比如在多线程中,在子线程中再也不用使用handler发送消息了,完全可以在子线程中调用这个方法来“更新”UI了(注意哦,这里的实际上会发送消息和执行代码段到UI,并不是在子线程上更新)





android 中使用View的消息队列api更新数据

原文:http://my.oschina.net/u/2256215/blog/337929

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