Handler消息传递机制(三)Message消息的两种发送方式

这里布局和mainfest的定义省了,直接看样例

package com.example.message2;

import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class MainActivity extends Activity implements OnClickListener{

	private Button send;
	private Handler handler = new Handler(){
		@Override
		public void handleMessage(android.os.Message msg){
			System.out.println("what-->>"+msg.what);//话说用System.out.print(..)就打不出了
		}
	};
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		send = (Button) findViewById(R.id.button1);
		send.setOnClickListener(this);
	}
	@Override
	public void onClick(View v) {
		switch (v.getId()) {
		case R.id.button1:
			/*handler可用send发送消息
			 * 	 handler.sendEmptyMessage(3);
			 * 声明一个空的消息,参数为what,实际上最后调用sendMessageDelayed
			 */
			//以下handler是用post发送的
			handler.post(new Runnable() {

						@Override
						public void run() {
							// 这里handler的发送方式有多种
							handler.sendEmptyMessage(3);
							//handler.sendEmptyMessageAtTime(3, 10);
						}
					});
			break;
		default:
			break;
		}
	}
}

日志打出的结果

源代码下载

时间: 2024-10-10 15:00:28

Handler消息传递机制(三)Message消息的两种发送方式的相关文章

Handler消息传递机制(二)Message的各种使用

package com.example.message; import android.app.Activity; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; public class M

spark streaming 接收kafka消息之一 -- 两种接收方式

源码分析的spark版本是1.6. 首先,先看一下 org.apache.spark.streaming.dstream.InputDStream 的 类说明: This is the abstract base class for all input streams. This class provides methods start() and stop() which is called by Spark Streaming system to start and stop receivi

Handler消息传递机制(三)管理MessageQueue的Looper

package com.example.looper; import android.app.Activity; 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.widg

Handler消息传递机制(四)子线程接收主线程发送的消息

package com.example.looper; import android.app.Activity; 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.widg

安卓开发_深入理解Handler消息传递机制

一.概述 因为子线程的run()方法无法修改UI线程(主线程)的UI界面,所以Android引入了Handler消息传递机制,实现在新创建的线程中操作UI界面 二.消息类(Message) 消息类是存放在MessageQueue中的,而一个MessageQueue中可以包含多个Message对象 每一个Message对象可以通过Message.obtain()或者Handler.obtainMessage()方法获得 一个Message具有的属性: 属性 类型 介绍 arg1 int 存放整型数

Android基础入门教程——3.3 Handler消息传递机制浅析

Android基础入门教程--3.3 Handler消息传递机制浅析 标签(空格分隔): Android基础入门教程 本节引言 前两节中我们对Android中的两种事件处理机制进行了学习,关于响应的事件响应就这两种:本节给大家讲解的 是Activity中UI组件中的信息传递Handler,相信很多朋友都知道,Android为了线程安全,并不允许我们在UI线程外操作UI:很多时候我们做界面刷新都需要通过Handler来通知UI组件更新!除了用Handler完成界面更新外,还可以使用runOnUiT

Android Handler消息传递机制

1. Handler消息传递机制初步认识:什么是Handler? handler通俗一点讲就是用来在各个线程之间发送数据的处理对象.在任何线程中,只要获得了另一个线程的handler,则可以通过 handler.sendMessage(message)方法向那个线程发送数据.基于这个机制,我们在处理多线程的时候可以新建一个thread,这个thread拥有UI线程中的一个handler.当thread处理完一些耗时的操作后通过传递过来的handler向UI线程发送数据,由UI线程去更新界面. 主

Android异步更新UI的方式之使用Handler消息传递机制

由于性能要求,android要求只能在UI线程中更新UI,要想在其他线程中更新UI,给大家介绍一种方式:使用Handler消息传递机制. 下面用这种方式更新一个TextView: package com.example.runonuithreadtest; import android.app.Activity; import android.os.Bundle; import android.os.Handler; import android.widget.TextView; public

断其一指------Handler消息传递机制

出于性能优化的考虑,Android的UI操作并不是线程安全的,如果多个线程同时处理UI,可能会出现线程安全的问题.所以,谷歌的大神们想出了一个简单粗暴的解决方案:只有主线程才能操作UI. 为了能够让UI线程和其他线程进行通信,引入了Handler消息传递机制. 常用方法: handleMessage() 处理消息的方法 sendEmptyMessage() 发送空消息 sendMessage() 发送消息 sendEmptyMessageDelayed 指定多少毫秒后发送空消息 sendMess