- 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) {
- 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() {
- super.onDestroy();
- thread.quit();
- }
- }
上面类是HandlerThread类的精简版,模仿HandlerThread类的实现,关键是为了理解HandlerThread类的工作原理;
Handler讲解参见:http://mobile.51cto.com/aprogram-388163.htm