`

HandlerThread的使用

 
阅读更多

package com.lilin.looper;

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

/**
 * 使用Looper来处理消息队列
 * 
 * @author lilin
 * @date 2011-8-10 上午09:03:32
 * @ClassName: HandlerTest2
 * @Description: TODO
 */
public class HandlerThreadDemo extends Activity {
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		System.out.println("当前Activity的ID-->" + Thread.currentThread().getId());
		HandlerThread handlerThread = new HandlerThread("handler_thread"); // 生成一个HandlerThread对象,实现了使用Looper来处理消息队列的功能,这个类由Android应用程序框架提供
		handlerThread.start();// 在使用HandlerThread的getLooper()方法之前,必须先调用该类的start();
		MyHandler myHandler = new MyHandler(handlerThread.getLooper());
		Message msg = myHandler.obtainMessage();

		Bundle b = new Bundle();
		b.putInt("age", 20);
		b.putString("name", "Jhon");

		msg.setData(b);// 将数据存放到Message中
		msg.sendToTarget();// 将msg发送到目标对象,所谓的目标对象,就是生成该msg对象的handler对象
	}

	class MyHandler extends Handler {
		public MyHandler() {

		}

		public MyHandler(Looper looper) {
			super(looper);
		}

		@Override
		public void handleMessage(Message msg) {
			Bundle b = msg.getData();// 从Message中获得数据
			int age = b.getInt("age");
			String name = b.getString("name");
			System.out.println("age is " + age + ", name is" + name);
			System.out.println("Handler的ID-->" + Thread.currentThread().getId());

		}
	}
}
 
分享到:
评论

相关推荐

    android HandlerThread 使用demo

    本示例("android HandlerThread 使用demo")将通过一个具体的实例展示如何在应用程序中正确地使用`HandlerThread`。 `HandlerThread` 的核心概念是它是一个拥有自己消息循环(Message Loop)的线程。与普通的线程...

    Android HandlerThread使用方法详解

    Android HandlerThread使用方法详解 HandlerThread 继承自Thread,内部封装了Looper。 首先Handler和HandlerThread的主要区别是:Handler与Activity在同一个线程中,HandlerThread与Activity不在同一个线程,而是别外...

    深入Android HandlerThread 使用及其源码完全解析

    Android HandlerThread 使用及其源码完全解析 HandlerThread 是 Android 中的一个线程类,继承自 Thread,本质上是一个拥有自己 Looper 的线程。它的出现是为了解决在 Android 中执行耗时任务时,需要不断创建和...

    HandlerThread使用demo

    理解并熟练使用HandlerThread,能够帮助开发者更好地进行多线程操作,避免直接在主线程执行耗时任务导致应用卡顿。 在Android系统中,主线程(UI线程)主要负责界面更新和用户交互,如果在此线程执行耗时操作,会...

    HandlerThread的使用与自定义HandlerThread

    本文将深入探讨 `HandlerThread` 的使用、工作原理,并讲解如何自定义 `HandlerThread`,以及为什么在某些场景下我们需要使用它。 `HandlerThread` 是 Android SDK 提供的一个特殊线程类,它的核心功能是结合了线程...

    HandlerThread的使用以及注意事项

    HandlerThread的使用以及注意事项

    HandlerThread

    使用HandlerThread的Looper创建Handler实例,这样处理的消息会在这个HandlerThread中执行: ```java Handler handler = new Handler(looper) { @Override public void handleMessage(Message msg) { // 处理...

    Android HandlerThread 全面解析

    本文将全面解析`HandlerThread`的工作原理、使用方法以及它在实际开发中的应用。 1. **`HandlerThread`简介** `HandlerThread`是Android中的一个内置类,它继承自`Thread`,并添加了`Looper`和`Handler`的支持。...

    Android:Handler学习实例2(HandlerThread、Bundle传递参数)

    //生成一个HandlerThread对象,实现了 使用Looper来处理消息队列的功能 HandlerThread handlerThread = new HandlerThread("handler_thread"); //在使用HandlerThread的getLooper()方法之前,必须先调用该类的...

    handlerthread学习demo

    标题中的"handlerthread学习demo"意味着我们将探讨如何在实际项目中使用`HandlerThread`,并通过一个示例来加深理解。`HandlerThread` 的工作原理与普通的线程有所不同,它结合了`Handler`、`Looper` 和 `Message...

    android HandlerThread 实例

    下面将详细介绍`HandlerThread`的工作原理、使用方法以及它在实际应用中的价值。 ### 1. `HandlerThread` 的工作原理 `HandlerThread` 在启动时会创建一个新的线程,并在这个线程中初始化一个`Looper`对象。`...

    Looper、Handler与HandlerThread

    为了不影响用户界面的流畅性,可以使用HandlerThread来异步加载图片,然后通过Handler将加载完成的图片信息发送回主线程,主线程再根据接收到的信息更新ImageView等UI组件。 总的来说,Looper、Handler和...

    线程池介绍

    // HandlerThread使用 HandlerThread handlerThread = new HandlerThread("HandlerThread"); handlerThread.start(); Handler handler = new Handler(handlerThread.getLooper()) { @Override public void ...

    防止ANR错误HandlerThread多线程解决耗时操作MyProject.zip

    使用HandlerThread可以将这些操作移动到后台线程,确保UI的流畅性。 1. **理解HandlerThread**:HandlerThread是一个包含Looper的线程,它的核心在于创建了一个消息循环,允许我们通过Message对象在不同的线程之间...

    实例分析Android中HandlerThread线程用法

    下面是一个完整的HandlerThread使用示例: ```java public class MainActivity extends AppCompatActivity { private HandlerThread mHandlerThread; private Handler mHandler; private boolean flag; @...

    Hanlder、HandlerThread、AsyncTask处理机制的相关Demo代码

    // 使用HandlerThread MyHandlerThread handlerThread = new MyHandlerThread("MyHandlerThread"); handlerThread.start(); // 在其他线程中通过HandlerThread的Handler发送消息 handlerThread.mHandler....

    Android HandlerThread的使用及原理详解

    下面我们将深入探讨 `HandlerThread` 的使用方法和工作原理。 ### 一、HandlerThread的含义 `HandlerThread` 是 Android SDK 提供的一个类,它是 `Thread` 的子类,但与普通线程不同的是,`HandlerThread` 在启动...

Global site tag (gtag.js) - Google Analytics