`

android handler和looper

阅读更多

1 消息在主线程执行

handler = new Handler() {

@Override public void handleMessage(Message msg) {

switch (msg.what) {

case R.string.hello: Log.i("tag", "this handler thread is " + Thread.currentThread().getName()); break;
default: break;

}

}

};

class ThreadWithMessage extends Thread {
Looper myLooper = null;


@Override
public void run() {
Log.i("tag", "the ThreadWithMessage is starting thread id is " + Thread.currentThread().getName());
消息在不同线程间处理方法(消息在主线程中处理):

Message message = new Message();

message.what = R.string.hello;
handler.sendMessage(message);

}
}

activity中的oncreate()方法中

// 消息在不同线程间处理方法(消息在主线程处理)
// Log.i("tag", "the main thread is" + Thread.currentThread().getName());
// new ThreadWithMessage().start();

 

 

 

消息在子线程执行

class ThreadWithMessage extends Thread {
Looper myLooper = null;
@Override
public void run() {
Log.i("tag", "the ThreadWithMessage is starting thread id is " + Thread.currentThread().getName());
// 实现线程间通信(消息在子线程中处理)
Looper.prepare();// 将looper 设置到这个线程中
myLooper = Looper.myLooper();
Looper.loop();// 开启消息循环
}
}

 

2 activity的onCreate()方法中

Log.i("tag", "the main thread is " + Thread.currentThread().getName());
// 消息在子线程处理
threadWithMessage = new ThreadWithMessage();
threadWithMessage.start();\

// 消息在子线程处理
Looper looper = threadWithMessage.myLooper;
handler = new Handler(looper) {


@Override
public void handleMessage(Message msg) {
switch (msg.what) {
case R.string.hello:
Log.i("tag", "the handler thread is" + Thread.currentThread().getName());
break;


default:
break;
}
}


};
Message message = new Message();
message.what = R.string.hello;
handler.sendMessage(message);

分享到:
评论

相关推荐

    Handler和looper详解

    Handler和Looper是Android系统中两个非常重要的组件,它们之间相互关联,共同实现了Android系统中的消息处理机制。在本文中,我们将对Handler和Looper进行详细的解释,并探讨它们在Android系统中的作用。 一、...

    自定义Handler-Looper实现线程间通信

    Handler、Looper和Message是Android系统提供的一套用于在不同线程之间传递消息和进行同步的关键组件。本文将深入探讨如何自定义Handler、Looper来实现线程间的通信。 首先,我们了解下Handler的基本原理。Handler是...

    Android Handler Looper Message 使用示例

    在主线程即UI线程外,新建一个Looper线程,并用Messenger和Handler来处理message和posted runnable。程序中,在负线程中默认加了一个3s的线程等来,来帮助理解sent message和post runnable之间的同步机制。所以在按...

    handler与looper及messagequeue的简单总结

    在Android开发中,Handler、Looper和MessageQueue是用于实现线程间通信的关键组件,它们共同构建了一个消息处理机制。理解这三个概念以及它们之间的关系对于优化应用程序的性能和响应性至关重要。 Handler(处理器...

    Handler+Looper+MessageQueue

    【Android 线程间通信:Handler、Looper 和 MessageQueue 深度解析】 在 Android 应用开发中,为了保证界面的流畅性,我们通常需要将耗时操作放在非 UI 线程中执行,然后通过某种机制将结果传递回 UI 线程进行界面...

    Android Handler Looper

    在Android应用开发中,Handler、Looper和Message是实现线程间通信的重要机制,尤其是在主线程与工作线程之间同步数据和执行UI更新时。Handler、Looper和Message三者结合使用,构建了一个消息处理系统,使得非UI线程...

    Android_Handler,Looper,Message

    在Android开发中,`Handler`、`Looper`和`Message`是实现线程间通信和异步处理的关键组件。它们共同构建了一个消息循环系统,使得应用程序可以在不同的线程之间传递和处理消息,尤其是在主线程(UI线程)与工作线程...

    Handler + Thread + Looper

    在Android应用开发中,Handler、Thread和Looper是三个至关重要的组件,它们共同构成了Android线程间通信的基础架构。本文将详细解析这三个概念及其相互关系,旨在帮助开发者理解它们的工作原理和实际应用场景。 ...

    Android 异步处理 Handler+Looper+MessageQueue深入详解

    Handler、Looper和MessageQueue是Android异步处理机制中的核心组件,它们共同构建了一个消息传递系统,使得在不同线程间进行数据交换变得可能。下面我们将深入探讨这三个组件的工作原理及其在实际开发中的应用。 ...

    android 多线程 looper handler

    Android 多线程 Looper Handler Android 操作系统中,多线程是一种常见的编程技术,通过使用多线程,可以提高应用程序的响应速度和效率。在 Android 中,多线程可以分为两种:有消息循环的线程和没有消息循环的线程...

    模拟Android Handler机制Demo

    【Android Handler机制】是Android应用程序中用于线程间通信的核心组件,它与Looper和Message紧密配合,实现消息的发送、处理以及线程间的同步。在Android应用开发中,尤其是涉及到UI更新时,Handler机制显得尤为...

    Handler,Looper和Message

    在Android开发中,`Handler`、`Looper`和`Message`是实现线程间通信的重要组件,它们共同构建了一个消息处理机制。理解这三个概念对于优化应用程序的性能和用户体验至关重要。 `Handler`(处理器)是Android中的一...

    android Looper

    总之,`Looper`是Android系统中的核心组件之一,它与`Handler`和`Message`共同构建了强大的异步处理机制。理解和熟练运用`Looper`,对于开发高效、流畅的Android应用程序至关重要。通过阅读指定的博客文章,你可以更...

    Android线程模式(handler,thread,looper)

    总结一下,Android的Handler-Thread-Looper模型是多线程通信的关键,通过Handler发送消息,Thread执行后台任务,Looper负责消息的调度,共同保证了UI线程的流畅性和应用程序的高效运行。开发者应当熟练掌握这些概念...

    Android应用源码之HandlerLooper2_Android.zip

    在Android应用开发中,Handler、Looper和Message是实现线程间通信的重要机制,尤其是在主线程与工作线程之间传递数据和执行任务时。本压缩包"Android应用源码之HandlerLooper2_Android.zip"可能包含了关于这个主题的...

    androidHandler测试的demo

    在“androidHandler测试的demo”中,我们可以预期包含以下内容: 1. 创建自定义`Handler`子类:这个子类可能重写了`handleMessage(Message msg)`方法,根据`msg.what`的值执行不同的操作,比如更新UI元素或执行特定...

    Handler Looper MessageQueue 源码解析

    在Android系统中,Handler、Looper和MessageQueue是实现线程间通信的核心组件,它们共同构建了一个消息处理机制。本文将深入解析这三者的源码,帮助你理解它们的工作原理,并教你如何手写一套自己的Handler系统。 ...

    安卓Android源码——HandlerLooper2.rar

    这个压缩包“安卓Android源码——HandlerLooper2.rar”可能包含了关于这些组件的深入分析和示例代码。以下是关于`Handler`、`Looper`和`MessageQueue`的详细解释: 1. **Handler**: - `Handler`是Android中的一个...

    Handler、Looper

    在Android系统中,Handler、Looper和Message构成了一个关键的消息处理机制,用于实现UI线程和其他线程之间的通信。本文将从源码的角度深入探讨这个机制,帮助开发者理解其内部工作原理。 首先,我们来理解Handler的...

    Android Handler消息处理顺序分析

    在Android开发中,Handler、Looper和Message是实现线程间通信的重要组件,它们共同构建了Android的消息处理机制。本文将详细分析Android Handler消息处理的顺序,以及如何利用这些组件进行异步操作。 首先,理解...

Global site tag (gtag.js) - Google Analytics