下面的程序实现了在利用Handler在新线程当中处理消息的方法

下面的程序实现了在利用Handler在新线程当中处理消息的方法

Thread java.lang.Thread.currentThread()

public static Thread currentThread ()

Added in API level 1

Returns the Thread of the caller, that is, the current Thread.

Returns

· the current Thread.

 

 



android.os.HandlerThread.HandlerThread(String name)

public HandlerThread (String name)

Added in API level 1Message android.os.Handler.obtainMessage()



public final Message obtainMessage ()

Added in API level 1

void android.os.Message.sendToTarget()

 


public void sendToTarget ()

Added in API level 1

Sends this Message to the Handler specified by getTarget(). Throws a null pointer exception if this field has not been set.

Returns a new Message from the global message pool. More efficient than creating and allocating new instances. The retrieved message has its handler set to this instance (Message.target == this). If you don't want that facility, just call Message.obtain() instead.

重点的几个类

Handler类  HandlerThread类  Thread类  Message

重点的几个方法

HandlerThread类 :

   构造方法  HandlerThreadString name

   启动方法  start()

   获取Looper getLooper()

Handler类:

构造方法  HandlerLooper  looper

获取消息对象  obtainMessageMessage msg

处理消息   handlerMessageMessage msg

Message

发送消息  sendToTarget()

 

package com.example.handlertest;

import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.HandlerThread;
import android.os.Looper;
import android.os.Message;

public class HandlerTest extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		//打印了当前线程的id和name
		System.out.println("Activity------>"+Thread.currentThread().getId());
		System.out.println("Activity------>"+Thread.currentThread().getName());
		
		HandlerThread handlerThread = new HandlerThread("hehe");
		handlerThread.start();
		
		MyHandler myHandler = new MyHandler(handlerThread.getLooper());
		Message msg = myHandler.obtainMessage();
		//将msg发送到目标对象,所谓的目标对象,就是生成该msg对象的handler对象
		msg.sendToTarget();
	}
	
	class MyHandler extends Handler{
		public MyHandler(){
			
		}
		//调用了父类的构造函数接收了 looper对象
		public MyHandler(Looper looper){
			super(looper);
		}
		//每当我们想Handler对象发送一个message对象的时候  就会调用这个方法的
		public void handlerMessage(Message msg){
			System.out.println("handler------->"+Thread.currentThread().getId());
			System.out.println("handler------->"+Thread.currentThread().getName());
            System.out.println("handlerMessage");
		}
	}

	

}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值