博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android 更新UI的两种方法——handler和runOnUiThread()
阅读量:4921 次
发布时间:2019-06-11

本文共 1265 字,大约阅读时间需要 4 分钟。

今天看到了一个runOnUiThread()方法用来更新UI,觉得很神奇!!

方法一:handler机制不说了。

方法二:利用Activity.runOnUiThread(Runnable)把更新ui的代码创建在Runnable中,然后在需要更新ui时,把这个Runnable对象传给Activity.runOnUiThread(Runnable)。 这样Runnable对像就能在ui程序中被调用。如果当前线程是UI线程,那么行动是立即执行。如果当前线程不是UI线程,操作是发布到事件队列的UI线程
 
FusionField.currentActivity.runOnUiThread(new Runnable()            {                public void run()                {                    Toast.makeText(getApplicationContext(), , "Update My UI",                            Toast.LENGTH_LONG).show();                }                });

public final void runOnUiThread ( action)

Added in 

Runs the specified action on the UI thread. If the current thread is the UI thread, then the action is executed immediately. If the current thread is not the UI thread, the action is posted to the event queue of the UI thread.

如果当前线程是UI主线程,则直接执行Runnable的代码;否则将Runnable post到UI线程的消息队列。  --看代码实现就知道了

Parameters

action   the action to run on the UI thread

public final void runOnUiThread(Runnable action) {         if (Thread.currentThread() != mUiThread) {             mHandler.post(action);//将Runnable Post到消息队列,由内部的mHandler来处理,实际上也是Handler的处理方式         } else {             action.run();//已经在UI线程,直接运行。         }     }

 

参考地址:

 

 

转载于:https://www.cnblogs.com/H-BolinBlog/p/5518720.html

你可能感兴趣的文章
第四章
查看>>
missing python bz2 module
查看>>
CUDA:Supercomputing for the Masses (用于大量数据的超级计算)-第十节
查看>>
单个单选框radio 点击选中点击取消选中
查看>>
团队冲刺随笔合集—Beta阶段
查看>>
Android ANR的产生与分析
查看>>
大型网站架构
查看>>
Appium+python自动化29-appium对博客园APP进行自动化测试
查看>>
cocos2d实例-移动精灵
查看>>
SQL Server 2005 导出包含(insert into)数据的SQL脚本 (使用存储过程)
查看>>
Python控制键盘鼠标:pynput,mouse,keyboard
查看>>
这里的*号实际表示就是RAC中所有实例都使用
查看>>
在python中编写socket服务端模块(二):使用poll或epoll
查看>>
解决Synergy的鼠标无法从服务器(server)机屏幕移动到客户机(client)屏幕的问题
查看>>
第三代搜索推出网民评价系统,seo末日还会远吗?
查看>>
希尔排序
查看>>
Silverlight 1.1架构图
查看>>
企业架构 - ADM方法概要介绍
查看>>
需求:如何做好深度访谈
查看>>
领域实体框架Rafy2 发布了
查看>>