android_handler(一)

只是一个简单的handler的例子,目的就是对handler有一个初步的接触。

在layout上添加一个button,点击按钮,然后打印出利用handler传送的数据。(都是运行在mainthread)

1、layout:

    <Button
        android:id="@+id/buttonId"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/hello_world" />

2、activity:

package com.away.b_06_handler;

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 MainActivity extends Activity {

	private Button button;
	private Handler handler;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);

		button = (Button) findViewById(R.id.buttonId);
		button.setOnClickListener(new ButtonListener());

		handler = new FirstHandler();
	}

	class ButtonListener implements OnClickListener {
		@Override
		public void onClick(View v) {
			// 当用户点击按钮时,我们创建一个消息对象,并使用Handler发送该对象
			Message msg = handler.obtainMessage(); //(obtainMessage获取消息对象)
			msg.what = 21;
			handler.sendMessage(msg);
			// 上面一行代码将消息对象放置到消息队列当中,然后
			// 1.Looper将会从消息队列当中,将消息对象取出.
			// 2.Looper将会找到与消息对象对应的Handler对象
			// 3.Looper将会调用Handler对象handlerMessage(Message msg)方法,用于处理消息对象
		}
	}

	class FirstHandler extends Handler {
		@Override
		public void handleMessage(Message msg) {
			int what = msg.what;
			System.out.println("What is: " + what);
		}
	}
}

效果:

时间: 2024-08-07 21:16:38

android_handler(一)的相关文章

android_handler(三)

这篇记录 android 消息机制中,MainThread 向 WorkThread 发送消息.( MainThread → WorkThread ) 步骤: 1.准备looper对象 2.在子线程中生成handler对象 3.在MainThread发送消息 代码: layout: <Button android:id="@+id/buttonId" android:layout_width="wrap_content" android:layout_heig

android_handler(二)

这篇记录 android 消息机制中.WorkThread 模拟向网络訪问数据,获得数据后,返回 message 发送给 MainThread ,并改动 TextView 的 text 的这种一个步骤.(MainThread ← WorkThread). 步骤: 1.在 MainThread 中创建一个 handler 对象.复写 handlemessage() 方法. 2.WorkThread 调用 handermessage() 的 sendMessage() 方法发送消息到消息队列 3.l

android_handler简单使用,测试

package yjm.com.testcontrol; import android.app.Activity; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.view.View; import android.widget.Button; import android.widget.TextView; public class TestActivit

Android--多线程之Handler

转载,感谢http://www.cnblogs.com/plokmju/p/android_handler.html 前言 Android的消息传递机制是另外一种形式的“事件处理”,这种机制主要是为了解决Android应用中多线程的问题,在Android中不允许Activity新启动的线程访问该Activity里的UI组件,这样会导致新启动的线程无法改变UI组件的属性值.但实际开发中,很多地方需要在工作线程中改变UI组件的属性值,比如下载网络图片.动画等等.本篇博客主要介绍Handler是如何发

[转]Android--多线程之Handler

原文:http://www.cnblogs.com/plokmju/p/android_Handler.html 前言 Android的消息传递机制是另外一种形式的“事件处理”,这种机制主要是为了解决Android应用中多线程的问题,在Android中不允许Activity新启动的线程访问该Activity里的UI组件,这样会导致新启动的线程无法改变UI组件的属性值.但实际开发中,很多地方需要在工作线程中改变UI组件的属性值,比如下载网络图片.动画等等.本篇博客主要介绍Handler是如何发送与

Android笔记二十五.Android事件Handler消息传递机制

因为Android平台不同意Activity新启动的线程訪问该Activity里的界面控件.这样就会导致新启动的线程无法动态改变界面控件的属性值.但在实际Android应用开发中,尤其是涉及动画的游戏开发中,须要让新启动的线程周期性地改变界面控件的属性值,这就须要借助Handler的消息传递机制实现. 一.Handler类简单介绍 1.功能 Handler类主要有两个作用 (1)在新启动的线程中发送消息; (2)在主线程中获取消息.处理消息.即当须要界面发生变化的时候.在子线程中调用Handle

Android-消息处理学习总结(Handler,Looper)

参考资料: http://www.cnblogs.com/qlky/p/5657924.html http://blog.csdn.net/guolin_blog/article/details/9991569 http://blog.csdn.net/gh102/article/details/7191486 http://www.cnblogs.com/plokmju/p/android_Handler.html http://www.jianshu.com/p/02962454adf7 h

Android之异步处理

Android中有些比较耗时的东西不能放在UI线程里面,因为当时间超过一段时间(大概5秒),就会出现ANR(Application No Response)错误.所以一些比较耗时的操作,例如联网或者读取一个比较大的文件里面的内容的时候这样才能出现错误.当然,还有其他的规定,Android中对控件的更新只能在UI线程里面(因为Android的设计直接在子线程里面更新控件是不安全的). 实现异步处理的两种方式: 1.Handler(每个Handler实例都会绑定到创建他的线程中去) 先说说我的理解吧

android中的handler使用之三

我们知道,handler可以可以发送Runnable的消息,同时他也可以发送Message的消息.代码如下 xml代码 1 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 2 xmlns:tools="http://schemas.android.com/tools" 3 android:layout_width="match_parent"