在android中只有主线程带消息处理,可以通过HandlerThread创建带消息分发的机制
- package com.ghg.HandlerThread;
- import android.app.Activity;
- import android.content.Intent;
- import android.os.Bundle;
- import android.os.Handler;
- import android.os.HandlerThread;
- import android.os.Looper;
- import android.os.Message;
- /**
- * 在主线程main中创建handler对象,创建消息,并用handler向工作线程发送消息,在工作线程中处理消息;
- * 应用环境:比如下载;
- * @author gaohong
- *
- */
- public class Day1304_HandlerThreadActivity extends Activity {
- HandlerThread thread;
- /** Called when the activity is first created. */
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- //创建工作线程并启动(工作线程带消息队列)
- thread=new HandlerThread("workThread");
- thread.start();
- Looper looper=thread.getLooper();
- //创建Handler对象并与工作线程的消息队列关联
- Handler handler=new Handler(looper){
- @Override
- public void handleMessage(Message msg) {
- // TODO Auto-generated method stub
- System.out.println("在"+Thread.currentThread().getName()+"中处理消息");
- System.out.println("msg.obj="+msg.obj);
- }
- };
- //创建Message对象
- Message msg=Message.obtain();
- msg.obj="在"+Thread.currentThread().getName()+"线程中发送消息";
- handler.sendMessage(msg);
- }
- @Override
- protected void onDestroy() {
- // TODO Auto-generated method stub
- super.onDestroy();
- thread.quit();
- }
- }