Handler详解系列(二)——主线程向自身消息队列发消息
发布日期:2021-06-30 11:16:10 浏览次数:3 分类:技术文章

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

MainActivity如下:
package cc.c;import android.os.Bundle;import android.os.Handler;import android.os.Looper;import android.os.Message;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.TextView;import android.app.Activity;/** * Demo描述: * 在主线程中给主线程自己的消息队列发送消息. *  * 平常最常用的套路是这样的: * 1 主线中实例化mHandler * 2 在子线程中使用该mHandler向主线程的消息队列发送消息 *  * 该示例中在主线程中给主线程自己的消息队列发送消息. * 步骤: * 1 利用getMainLooper()实例化一个Handler * 2 在主线程中发送消息. *  * 正因为在初始化一个Handler时候使用的是主线程的Looper(即getMainLooper()) * 那么消息当然是发到了主线程的消息队列.认识到这一点是很重要的. *  * 该实例本身没有什么实际使用意义,主要是为了进一步认识Handler的机制. * */public class MainActivity extends Activity {	private TextView mTextView;	private Button mButton;	@Override	protected void onCreate(Bundle savedInstanceState) {		super.onCreate(savedInstanceState);		setContentView(R.layout.main);		init();	}	private void init() {		mTextView = (TextView) findViewById(R.id.textView);		mButton = (Button) findViewById(R.id.button);		mButton.setOnClickListener(new OnClickListener() {			@Override			public void onClick(View v) {				HandlerTest handlerTest = new HandlerTest(getMainLooper());				Message message = new Message();				message.obj = "Hi~";				handlerTest.sendMessage(message);			}		});	}	private class HandlerTest extends Handler {		private HandlerTest(Looper looper) {			super(looper);		}		@Override		public void handleMessage(Message msg) {			super.handleMessage(msg);			mTextView.setText("在主线程中,收到主线程自己的Handler发来消息:" + msg.obj);		}	}}

main.xml如下:

转载地址:https://it9527.blog.csdn.net/article/details/40016153 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:Handler详解系列(一)——Handler异步消息机制详解(附图)
下一篇:Handler详解系列(三)——在子线程中给主线程的消息队列发送消息

发表评论

最新留言

第一次来,支持一个
[***.219.124.196]2024年04月11日 11时21分09秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章