博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Handler具体解释系列(七)——Activity.runOnUiThread()方法具体解释
阅读量:6260 次
发布时间:2019-06-22

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

MainActivity例如以下:
package cc.testui3;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.TextView;import android.app.Activity;/** * Demo描写叙述: * 在子线程中更改UI的方式三 *  * 调用Activity.runOnUiThread(Runnable runnable)方法. *  *该方法的源代码例如以下: * * 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. * * @param action the action to run on the UI thread * public final void runOnUiThread(Runnable action) { *    if (Thread.currentThread() != mUiThread) { *        mHandler.post(action); *    } else { *        action.run(); *      } * } *  *  * 源代码中的这段凝视太具体和贴心了,赞一个! * 在UI线程中运行该Runnable. * 假设当前线程是UI线程,那么该Runnable会马上运行. * 假设当前的线程不是UI线程则调用UI线程handler的post()方法将其放入UI线程的消息队列中. * 注意:勿在runOnUiThread(Runnable runnable)中做耗时操作 *  * 參考资料: * http://blog.csdn.net/guolin_blog/article/details/9991569 * Thank you very much */public class MainActivity extends Activity {	 private TextView mTextView;	 private Activity mActivity;	 private Button mButton;		@Override		protected void onCreate(Bundle savedInstanceState) {			super.onCreate(savedInstanceState);			setContentView(R.layout.main);			init();		}	    private void init(){	    	mActivity=this;	    	mTextView=(TextView) findViewById(R.id.textView);	    	mButton=(Button) findViewById(R.id.button);	    	mButton.setOnClickListener(new OnClickListenerImpl());	    }			private class OnClickListenerImpl implements OnClickListener {		@Override		public void onClick(View v) {			new Thread(){				public void run() {					mActivity.runOnUiThread(new Runnable() {						@Override						public void run() {							mTextView.setText("My name is zxc , number is 007");						}					});				};			}.start();		}	}	}
main.xml例如以下:
你可能感兴趣的文章
正则表达式基础知识
查看>>
Web下的HTTPS应用
查看>>
perl数组的长度与元素个数
查看>>
Netty线程模型
查看>>
『Kaggle』Sklearn中几种分类器的调用&词袋建立
查看>>
017_nginx重定向需求
查看>>
[UWP]涨姿势UWP源码——RSS feed的获取和解析
查看>>
判断一个变量是否为空的方法
查看>>
linux 学习一:安装jdk和tomcat
查看>>
[js高手之路]html5 canvas动画教程 - 边界判断与反弹
查看>>
Lua--------------------unity3D与Slua融合使用
查看>>
IP视频通信中的"丢包恢复技术”(LPR)
查看>>
java序列化/反序列化之xstream、protobuf、protostuff 的比较与使用例子
查看>>
xcode编译报错unknown error -1=ffffffffffffffff Command /bin/sh failed with exit code 1
查看>>
linux定时任务crontab设置
查看>>
$.ajax返回的JSON格式的数据后无法执行success的解决方法
查看>>
Android 多媒体MediaPlayer使用详解
查看>>
Golang源码探索(三) GC的实现原理
查看>>
魔方NewLife.Cube升级v2.0
查看>>
Silverlight 引路蜂二维图形库示例:颜色
查看>>