在android中Handler类通常作为不同线程间通信的手段,既可以实现线程的互斥,也可以实现同步。
下面以一个简单的例子来说明如何实现两个线程间的通信。
import android.app.Activity;
import android.os.Bundle;
import android.os.Message;
import android.util.Log;
import android.os.Handler;
public class MyHandler extends Activity {
static final String TAG = "Handler";
static final int HANDLER_TEST = 1;
Handler h = new Handler(){
public void handleMessage (Message msg)
{
switch(msg.what)
{
case HANDLER_TEST:
Log.d(TAG, "The handler thread id = " + Thread.currentThread().getId() + " ");
break;
}
}
};
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.d(TAG, "The main thread id = " + Thread.currentThread().getId() + " ");
new myThread().start();
setContentView(R.layout.main)
//此处为activity的主线程
}
class myThread extends Thread
{
//新创建的线程,通过Handler.sendMessage(Message msg);实现子线程与主线程间通信
public void run()
{
Message msg = new Message();
msg.what = HANDLER_TEST;
h.sendMessage(msg);
Log.d(TAG, "The worker thread id = " + Thread.currentThread().getId() + " ");
}
}
}
通过子线程和主线程间通信实现同步和互斥。
分享到:
相关推荐
文档详细介绍了Handler实现线程间通信过程中源码的实现机制,并对其中的Looper,MessageQueue,Message对象的初始化及sendMessage()通过sendMessageDelayed()和sendMessageAtTime()过程的操作机流程
本文将深入探讨如何自定义Handler、Looper来实现线程间的通信。 首先,我们了解下Handler的基本原理。Handler是Android中的一个类,它主要用于发送和处理Message对象。在主线程(UI线程)中创建一个Handler实例后,...
在Android应用开发中,Handler、Looper和Message是实现线程间通信的重要机制。这个"Android_Handler的线程队列Demo"旨在演示如何有效地利用Handler来处理线程间的通信,特别是主线程(UI线程)与工作线程之间的交互...
本文将深入探讨“Android Handler线程间的调度”这一主题,并结合提供的资源——MessageProject,来阐述相关知识点。 首先,Handler是Android中的一个关键类,它允许开发者在不同的线程之间发送和处理消息。Handler...
总结来说,Looper和Handler是Android系统中实现UI线程和子线程通信的重要工具。它们通过消息队列和消息传递的方式,确保了非UI线程能够安全地更新UI,避免了因直接在非UI线程中进行UI操作而导致的"Application Not ...
Handler机制就是Android系统提供的一种高效、灵活的线程间通信方式。本篇将深入探讨如何利用Handler在线程之间传递代码,以实现异步处理和保持UI线程的流畅。 首先,理解Handler的基本原理。Handler是Android中的一...
总之,`Handler`机制是Android中非常重要的多线程通信方式,它使得我们可以灵活地在不同线程之间传递消息,实现异步操作,提高应用的性能和用户体验。在实际项目中,正确地理解和运用`Handler`、`Looper`和`Message`...
`Handler`通过`Looper`和`MessageQueue`来实现线程间的通信,确保在正确的时间、正确的线程执行特定的任务。 首先,我们创建一个`Handler`实例,通常在主线程中完成。这个`Handler`会关联到主线程的`Looper`,这样...
本文将深入探讨Android中如何通过Handler实现线程间的通信。 首先,理解Android线程模型至关重要。Android应用的主要工作线程被称为UI线程或主线程,它负责处理用户界面的更新和事件响应。后台线程通常用于执行耗时...
- `app` 文件夹包含了应用的源代码和资源文件,其中可能有实现Handler多线程通信的具体代码。 以上就是关于"andriod多线程通信handler方法"的详细解释,以及与之相关的Android项目结构。通过理解并熟练运用Handler...
在《Android Handler之消息循环的深入解析》中谈到了Handler是用于操作线程内部的消息队列,所以Handler可以用来线程间通信ITC,这种方式更加安全和高效,可以大大减少同步的烦恼,甚至都可以不用syncrhonized。线程...
### Handler线程在Android中的应用及心得 #### 一、Handler机制概述 Handler机制是Android系统中用于处理消息和线程通信的重要组成部分。它主要由四个核心组件组成:`Looper`、`Handler`、`MessageQueue` 和 `...
在Android开发中,`Handler`、`Thread`、`Toast`、`消息队列`以及`线程`是实现UI交互和异步处理的关键概念。本文将深入探讨这些概念,并结合给定的"Android Handler 线程 示例代码"进行详细讲解。 首先,我们来看`...
在Android开发中,`Handler`、`Message`和线程是三个非常重要的概念,它们用于在应用程序的不同组件之间实现异步通信和数据传递。本文将深入讲解这些概念,并通过一个简单的实例来帮助初学者理解其工作原理。 首先...
每一个线程对应一个消息队列MessageQueue,实现线程之间的通信,可通过Handler对象将数据装进Message中,再将消息加入消息队列,而后线程会依次处理消息队列中的消息。 2. Message 初始化:一般使用Message.obtain()...
总的来说,Handler消息机制是Android开发中实现多线程通信的关键技术,它简化了线程间的交互,提高了程序的可读性和可维护性。正确理解和运用Handler,对于提升Android应用的性能和用户体验具有重要意义。
通过上述介绍可以看出,Android中的线程间通信主要是通过Handler和Looper实现的。Handler负责消息的发送和接收,而Looper则管理着消息队列和消息循环。合理运用这两种机制,可以有效解决多线程环境中UI更新的问题,...
本篇文章将详细探讨如何在Android中使用Thread和Handler实现多线程通信,确保非UI线程能够安全地更新UI。 首先,Android应用程序的主线程(UI线程)主要负责管理用户界面,处理用户交互事件。主线程不允许执行长...