首页 > 编程语言 > 详细

在子线程中操作主线程

时间:2014-05-07 03:39:27      阅读:326      评论:0      收藏:0      [点我收藏+]

当android启动Activity时,会先启动一个主线程(也称为UI线程),用于控制Activity的当前View界面,在主线程控制的过程中,子线程是不能直接更新主线程数据的,但是android中提供了很多其他线程操作UI线程的方法

方法一Activity.runOnUiThread( Runnable)

这是一个在子线程中设置主线程中TextView的实例:

NeedVerify.this.runOnUiThread(new Runnable() {
								
	public void run() {
		tvResult.setText("登陆失败");
		}
	});

方法二Handler

	private Handler handler=new Handler(){
		@Override
		public void handleMessage(Message msg) {
			// TODO Auto-generated method stub
			super.handleMessage(msg);
			if (msg.what==1) {
			Object s= msg.obj;
			tvResult.setText("相似度为:"+s+"%不能登陆");
				
			}
		}
	};

Message message=new Message();
message.obj=smilar;//传递的消息
message.what=1;
handler.sendMessage(message);


这种方法实现的过程:

1、子线程利用handler发送一条消息,消息被放在主线程的消息队列里

2、主线程里有一个looper消息的轮询器

3、如果轮询器发现新的消息,调用handlemessage的方法处理消息

好像还有View.post(Runnable)View.postDelayed(Runnable,long)AsyncTask这几种方法可以实现这种操作,

不过以上两种方法暂时够用了,其他几种情况以后再慢慢补充。







在子线程中操作主线程,布布扣,bubuko.com

在子线程中操作主线程

原文:http://blog.csdn.net/zhong1113/article/details/25003735

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