首页 > 代码库 > android 中使用View的消息队列api更新数据
android 中使用View的消息队列api更新数据
基本上只要继承自View的控件,都具有消息队列或者handler的一些处理方法,下面是一些handler方法以及被View封装了的方法,其底层用的基本都是handler的api。
我么开一下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更新数据
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。