- 浏览: 263036 次
- 性别:
- 来自: 济南
文章分类
- 全部博客 (303)
- c (31)
- c++ (16)
- java (18)
- c# (1)
- python (3)
- java web (6)
- oracle (7)
- sqlserver (2)
- mysql (2)
- android (24)
- android系统 (15)
- android多媒体部分 (15)
- android游戏 (12)
- linux (26)
- javaScript (1)
- ajax (1)
- node JS (2)
- html (5)
- apache (3)
- jboss (1)
- weblogic (0)
- 通信协议 (10)
- 云计算 (1)
- 分布式 (5)
- ejb (1)
- webservice (5)
- 设计模式 (16)
- JNI (6)
- swing (13)
- 版本控制 (1)
- UML (1)
- xml (4)
- spring (5)
- hibernate (5)
- struts1 (3)
- struts2 (4)
- ibatis (0)
- tomcat (2)
- 心得体会 (1)
- css (1)
- 嵌入式 (41)
- arm体系结构 (10)
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);
发表评论
-
NDK环境搭建学习笔记
2013-05-12 13:39 1109本地native方法实现步骤 ... -
即时通信学习笔记
2013-05-18 09:56 805下载安装文件 openfire_3_6_4.exe spark ... -
android 代码混淆
2013-03-20 19:47 1055在项目文件下,自动生成了文件:proguard-projec ... -
android 即时通信学习笔记一
2012-11-04 15:49 830下载安装文件 openfire_3_6_4.exe spa ... -
andriod 源码下载
2012-11-02 14:36 885git 是版本控制工具 安装方法: sudo apt-g ... -
android应用的适配常用方法
2012-09-03 14:48 413屏幕大小: small normal large ... -
android 蓝牙学习笔记
2012-09-07 09:56 928蓝牙部分学习 蓝牙之间的通信需要四部分: 1 设置蓝牙设备 ... -
取得手机 IP地址
2012-09-07 09:57 634public String getLocalIpAddress ... -
android动画Scale+Translate
2012-09-07 10:14 753/** * 移动缩小动画 * @author 岳振华 * ... -
android中ActionBar +Fragment
2012-09-07 10:18 1111/** * 测试tab标题栏 * * @time 下午0 ... -
android ArcGIS学习笔记一
2012-09-08 18:18 3480动态操作地图服务 1.动态添加一个地图服务String ur ... -
android 启动流程
2012-09-10 15:45 707bootload 加载linux 内核 挂载ramd ... -
android 修改开机动画
2012-09-10 16:41 945framebuffer驱动里可以定制开机界面 开机过程中屏 ... -
Framebuffer Driver
2012-09-10 16:42 703Framebuffer Driver 中 ... -
android 简单服务实现
2012-09-14 16:06 697/** * 测试服务 * * @time 下午02:40 ... -
android 常用命令
2012-09-26 16:03 7001 显示设备列表 adb devices 2 在指定模拟器 ... -
android 调用webservice
2012-10-13 22:43 915web服务端 package cn.yue.lsp.ph ... -
android 动画
2012-10-25 17:05 676tween xml 代码如下: <?xm ... -
NDK学习笔记
2012-10-27 15:40 707工具下载: cygwin 1.7或以上版本 awk升级 ... -
android activity四种加载模式
2012-10-27 15:45 846Activity之间的跳转,或 ...
相关推荐
Handler和Looper是Android系统中两个非常重要的组件,它们之间相互关联,共同实现了Android系统中的消息处理机制。在本文中,我们将对Handler和Looper进行详细的解释,并探讨它们在Android系统中的作用。 一、...
Handler、Looper和Message是Android系统提供的一套用于在不同线程之间传递消息和进行同步的关键组件。本文将深入探讨如何自定义Handler、Looper来实现线程间的通信。 首先,我们了解下Handler的基本原理。Handler是...
在主线程即UI线程外,新建一个Looper线程,并用Messenger和Handler来处理message和posted runnable。程序中,在负线程中默认加了一个3s的线程等来,来帮助理解sent message和post runnable之间的同步机制。所以在按...
在Android开发中,Handler、Looper和MessageQueue是用于实现线程间通信的关键组件,它们共同构建了一个消息处理机制。理解这三个概念以及它们之间的关系对于优化应用程序的性能和响应性至关重要。 Handler(处理器...
【Android 线程间通信:Handler、Looper 和 MessageQueue 深度解析】 在 Android 应用开发中,为了保证界面的流畅性,我们通常需要将耗时操作放在非 UI 线程中执行,然后通过某种机制将结果传递回 UI 线程进行界面...
在Android应用开发中,Handler、Looper和Message是实现线程间通信的重要机制,尤其是在主线程与工作线程之间同步数据和执行UI更新时。Handler、Looper和Message三者结合使用,构建了一个消息处理系统,使得非UI线程...
在Android开发中,`Handler`、`Looper`和`Message`是实现线程间通信和异步处理的关键组件。它们共同构建了一个消息循环系统,使得应用程序可以在不同的线程之间传递和处理消息,尤其是在主线程(UI线程)与工作线程...
在Android应用开发中,Handler、Thread和Looper是三个至关重要的组件,它们共同构成了Android线程间通信的基础架构。本文将详细解析这三个概念及其相互关系,旨在帮助开发者理解它们的工作原理和实际应用场景。 ...
Handler、Looper和MessageQueue是Android异步处理机制中的核心组件,它们共同构建了一个消息传递系统,使得在不同线程间进行数据交换变得可能。下面我们将深入探讨这三个组件的工作原理及其在实际开发中的应用。 ...
Android 多线程 Looper Handler Android 操作系统中,多线程是一种常见的编程技术,通过使用多线程,可以提高应用程序的响应速度和效率。在 Android 中,多线程可以分为两种:有消息循环的线程和没有消息循环的线程...
【Android Handler机制】是Android应用程序中用于线程间通信的核心组件,它与Looper和Message紧密配合,实现消息的发送、处理以及线程间的同步。在Android应用开发中,尤其是涉及到UI更新时,Handler机制显得尤为...
在Android开发中,`Handler`、`Looper`和`Message`是实现线程间通信的重要组件,它们共同构建了一个消息处理机制。理解这三个概念对于优化应用程序的性能和用户体验至关重要。 `Handler`(处理器)是Android中的一...
总之,`Looper`是Android系统中的核心组件之一,它与`Handler`和`Message`共同构建了强大的异步处理机制。理解和熟练运用`Looper`,对于开发高效、流畅的Android应用程序至关重要。通过阅读指定的博客文章,你可以更...
总结一下,Android的Handler-Thread-Looper模型是多线程通信的关键,通过Handler发送消息,Thread执行后台任务,Looper负责消息的调度,共同保证了UI线程的流畅性和应用程序的高效运行。开发者应当熟练掌握这些概念...
在Android应用开发中,Handler、Looper和Message是实现线程间通信的重要机制,尤其是在主线程与工作线程之间传递数据和执行任务时。本压缩包"Android应用源码之HandlerLooper2_Android.zip"可能包含了关于这个主题的...
在“androidHandler测试的demo”中,我们可以预期包含以下内容: 1. 创建自定义`Handler`子类:这个子类可能重写了`handleMessage(Message msg)`方法,根据`msg.what`的值执行不同的操作,比如更新UI元素或执行特定...
在Android系统中,Handler、Looper和MessageQueue是实现线程间通信的核心组件,它们共同构建了一个消息处理机制。本文将深入解析这三者的源码,帮助你理解它们的工作原理,并教你如何手写一套自己的Handler系统。 ...
这个压缩包“安卓Android源码——HandlerLooper2.rar”可能包含了关于这些组件的深入分析和示例代码。以下是关于`Handler`、`Looper`和`MessageQueue`的详细解释: 1. **Handler**: - `Handler`是Android中的一个...
在Android系统中,Handler、Looper和Message构成了一个关键的消息处理机制,用于实现UI线程和其他线程之间的通信。本文将从源码的角度深入探讨这个机制,帮助开发者理解其内部工作原理。 首先,我们来理解Handler的...
在Android开发中,Handler、Looper和Message是实现线程间通信的重要组件,它们共同构建了Android的消息处理机制。本文将详细分析Android Handler消息处理的顺序,以及如何利用这些组件进行异步操作。 首先,理解...