探究服务(一)---异步消息处理流程
来源:互联网 发布:cad网络培训 编辑:程序博客网 时间:2024/05/24 04:19
服务是Android中实现程序后台运行的解决方案。
在学习服务之前,我们要明白,服务不会自动开启线程,所有的代码都是默认运行在主线程当中,我们需要在服务里面开启子线程来执行具体的服务。
Android多线程编程
类似于java的多线程,一般常用匿名类的方式。
new Thread(new Runnable(){@Overridepublic void run(){//执行具体的逻辑}}).start();
必须在主线程更新UI元素
Android不允许在子线程进行UI操作,但有时我们必须在子线程里执行一些耗时操作,然后根据执行结果进行UI操作。为此,##Android提供了一套异步消息处理机制。
异步消息处理机制
Android异步消息处理机制主要有Message, Handler, ManageQueue, Looper四部分组成。
Message 用于在不同的线程之间传递数据。
Handler 主要用于发送和处理消息,使用sendMessage()方法发送数据,最终由handleMessage()方法处理数据。
MessageQueue 消息队列,主要存放所有通过Handler发送的消息。
Looper 每个线程中MessageQueue的管家
异步消息处理流程
1,首先创建一个Handler对象,重写handleMessage()方法。
2,当我们需要在子线程进行UI操作的时候,创建一个Message对象,通过sendMessage()方法发送出去。
3,发送出去的消息存放在MessageQueue,等待Looper取出数据。
4,数据分发到Handler的handleMessage()方法里面。
Handler是在主线程创建的,handleMessage()方法也会在主线程执行,所以UI操作是可以的。一条Message经过异步消息处理流程,从子线程进入到主线程。
阅读全文
1 0
- 探究服务(一)---异步消息处理流程
- (一)Android 异步消息处理
- Anroid异步消息处理(一)
- Android异步消息处理机制(一)
- 异步消息处理机制(一)
- Android异步通讯范例(异步消息处理) 一
- Android服务(包括多线程和异步消息处理)
- Android异步消息处理(一)--》Handler和多线程深入
- Android异步消息处理机制(一):简单使用
- Android Handler异步消息处理机制一: 基础理解
- 消息及异步处理
- 异步消息处理 handler
- Android异步消息处理
- Java 异步消息处理
- Android异步消息处理
- Java 异步消息处理
- android 异步消息处理
- Android异步消息处理
- 自然语言处理(一 神经网络背景介绍)
- 树的链式存储,及前序中序后序遍历
- gulp使用问题汇总
- JAVA【泛型】
- linux文件颜色
- 探究服务(一)---异步消息处理流程
- VMware:在部分链上无法执行所调用的函数,请打开父虚拟磁
- UVALive
- python json的一些使用情况
- zookeeper基本概念(1)
- 使用fasttext完成文本处理及文本预测
- Android小知识
- 042. 字符统计(20)
- linux ettercap+wireshark抓取局域网内其他设备的数据包