- 浏览: 137921 次
- 性别:
- 来自: 北京
文章分类
最新评论
android的view和ui组件不是线程安全的,所以android不允许开发者启动线程访问用户界面中的ui组件,这是就额外定义一个handler来处理对ui组件的操作。。。
Handler 为Android操作系统中的线程通信工具,包为android.os.Handler。
与Handler绑定的有两个队列,一个为消息队列,另一个为线程队列。Handler可以通过这两个队列来分别:
- 发送、接受、处理消息–消息队列;
- 启动、结束、休眠线程–线程队列;
Android OS中,一个进程被创建之后,主线程(可理解为当前Activity)创建一个消息队列,这个消息队列维护所有顶层应用对象(Activities, Broadcast receivers等)以及主线程创建的窗口。你可以在主线程中创建新的线程,这些新的线程都通过Handler与主线程进行通信。通信通过新线程调用 Handler的post()方法和sendMessage()方法实现,分别对应功能:
- post() 将一个线程加入线程队列;
- sendMessage() 发送一个消息对象到消息队列;
当然,post()方法还有一些变体,比如postDelayed()、postAtTime()分别用来延迟发送、定时发送;
消息的处理,在主线程的Handler对象中进行;具体处理过程,需要在new Handler对象时使用匿名内部类重写Handler的handleMessage(Message msg)方法;
线程加入线程队列可以在主线程中也可以在子线程中进行,但都要通过主线程的Handler对象调用post()。
在主线程HandlerActivity中,通过Handler对象将updateBarThread子线程对象添加到主线程的队列中,并不是另外开启了一个新的线程去执行。
发表评论
-
微信现金红包高级红包接口开发注意事项(转)
2015-06-10 15:30 651最近因为公司业务需求,接触了微信现金红包高级红包接口,开发时遇 ... -
android 对文件的操作模式
2012-03-15 14:02 974Context.MODE_PRIVATE = 0 Co ... -
对话框风格的窗口
2011-11-15 11:50 979实现对话框风格的窗口只要在配置Acitvty时,添加theme ... -
android带有占位符的国际化
2011-10-27 16:26 1035字符串: <string name="str ... -
android国际化
2011-10-27 11:53 88481. 很大程度上,为什么我们能如此方便的实现国 ... -
android的监听器实现方式
2011-10-27 10:33 22691 内部类、匿名内部类的形式:将事件监听器类定义成当前类的内 ... -
TextUtils的使用
2011-10-26 17:22 968TextUtils -
SharedPreferences的mode解释
2011-10-26 16:02 1021获得SharedPreferences的方法是通过Contex ... -
启动两个模拟器打电话 和短信
2011-10-26 11:25 1542具体步骤: 首先,我们要启动两个android模拟器。只有这 ... -
创建自定义布局的
2011-10-25 17:59 878创建自定义布局的AlertDialog,需要一个布局文 ... -
(转)访问SharedPreferences
2011-10-25 17:58 779I:访问本程序的(FirstApp)SharedPrefere ... -
使用Bundle在Activity间传递数据
2011-10-20 10:23 2262源Activity public class SourceA ... -
数据存储方式
2011-10-19 14:41 1577无论是神马平台,神马 ... -
转android的创意
2011-10-19 14:15 927主要是总结一下论坛中关于android手机应用创意,我觉得可以 ... -
android常见异常
2011-10-18 14:45 17911 INSTALL_FAILED_INSUFFICIENT_S ... -
Toast小结
2011-10-18 14:32 723创建方式: 1 Toast showImageTo ... -
Android SDCard操作
2011-10-18 11:02 925android.os.Environment 提供访问环境变 ... -
Android读写文件
2011-10-18 10:40 719Android开源手机操作 ... -
layout中控件属性中的问号的意思
2011-10-17 16:40 847Notice the use of the at-symbol ... -
Android XML解析 (转)
2011-10-10 16:57 807在Android平台上可以使用Simple API for X ...
相关推荐
本教程将深入探讨Android线程通信的基本概念、常用方法以及如何通过Demo来实践这些技术。 一、Android线程基础 Android系统的主要线程被称为“主线程”或“UI线程”,负责处理用户界面的交互事件,如触摸事件、...
Android中有多种类型的线程池,如FixedThreadPool、CachedThreadPool、SingleThreadPool、ScheduledThreadPool等,每种线程池都有其特点和应用场景。 要创建一个线程池,需要了解几个重要的参数,如corePoolSize、...
IntentService的特点是每个请求都在单独的工作线程中运行,请求之间是串行的,适用于执行一系列独立但需要后台执行的任务,例如下载文件。 网络操作在Android中通常涉及HTTP请求,早期使用HttpURLConnection,但...
**Android线程:** 默认情况下,所有的组件(如Activity、Service)都在主线程中运行。这意味着任何阻塞性或耗时的操作都可能影响到UI的响应速度,甚至导致“应用程序无响应”(ANR)的错误提示。 #### 二、Android...
### Android线程间通信详解 #### 一、引言 Android应用开发中,线程间的通信是一项非常重要的技术。为了确保应用的响应性和流畅性,通常会将一些耗时的操作(比如网络请求、数据库访问等)放到后台线程中执行,而...
Android中多线程切换的几种方法包括Thread、ThreadPool、Runnable、Callable、Future、Condition、Handler等,每种方法都有其特点和适用场景,开发者需要根据实际情况选择合适的方法来实现多线程切换。
- 通过这种方式,单例对象仅在首次调用 `getInstance()` 时创建,这符合“懒汉式”单例的特点,即实现了延迟加载,提高了程序的性能。 - 相比于早期的“饿汉式”(静态字段直接初始化)实现,这种方式在单例对象未...
ActivityThread在Android线程管理中扮演着核心角色,它是每个应用程序的主入口点,负责协调与系统服务之间的通信,尤其是与ActivityManagerService(AMS)的交互。 1. **线程通信**: 在Android中,线程间的通信...
2. 多线程支持:考虑到Android应用的UI线程不能长时间阻塞,分词操作可能需要在后台线程执行,以保持界面的流畅性。 3. 性能优化:可能采用了更高效的编码和解码策略,减少CPU和内存的消耗。 4. 兼容性:对不同的...
在给定文件中,虽然提供了关于“Android多线程与消息循环”的标题与标签,但是实际内容却是关于“真空铸造过程中污染物回收净化装置”的制作与技术方案。由于这部分内容与Android开发无关,将专注于所提供的内容,即...
5. **多线程编程**:VB在Android平台上同样需要处理多线程问题,理解如何在Android环境下创建并管理线程,确保应用的高效运行。 6. **调试与测试**:学习使用VB for Android提供的调试工具,进行应用的错误检查和...
在移动开发领域,Android以其开源、灵活的特点,成为了全球范围内开发者广泛使用的平台。本资源提供了一个实际的Android应用市场项目源码,非常适合初学者进行深入学习。这个项目是基于Android Studio构建的,...
Android线程,一般地就是指Android虚拟机线程,而虚拟机线程是由通过系统调用而创建的Linux线程。纯粹的的Linux线程与虚拟机线程区别在于虚拟机线程具有运行Java代码的runtime。在Android 中当担也就对应一个类。 ...
`Android-Lemon`框架针对这些痛点进行了优化,主要特点如下: - **简单易用**:提供简洁的API,通过几行代码即可完成Socket连接和数据交互。 - **线程管理**:自动处理网络IO的异步操作,避免阻塞主线程,保证用户...
以下是`Android-ANR-WatchDog`的一些关键特点和使用方法: 1. **自定义超时**:开发者可以设置一个自定义的超时时间,超过这个时间限制,若主线程未进行任何操作,看门狗就会认为出现了ANR。 2. **异常处理**:当...
首先,理解UDP协议的特点至关重要。与TCP(Transmission Control Protocol)相比,UDP不建立连接,不保证数据的可靠传输,没有拥塞控制,因此它的传输速度相对较快。在Android中,使用Java的Socket API或特定的...
在Android开发中,理解主线程和子线程的区别至关重要,因为它们在应用程序的运行和UI交互中起到不同的作用。主线程,通常被称为UI线程,是应用启动时默认创建的线程,负责处理用户界面的所有操作,如点击事件、布局...
3. **功能强大**:除了基本的日志输出,`Android-PLog`还支持颜色标记、时间戳、线程信息、堆栈追踪等功能,这在调试过程中非常实用。此外,它还支持多标签日志,便于分类管理大量的日志信息。 4. **性能优化**:...