相关源码
framework/base/core/java/andorid/os/Handler.java
framework/base/core/java/andorid/os/Looper.java
framework/base/core/java/andorid/os/Message.java
framework/base/core/java/andorid/os/MessageQueue.j...
分类:
移动开发 时间:
2016-04-29 18:33:24
阅读次数:
303
Android消息机制好多人都讲过,但是自己去翻源码的时候才能明白。 今天试着讲一下,因为目标是讲清楚整体逻辑,所以不追究细节。 Message是消息机制的核心,所以从Message讲起。 1.Message是什么? 看一个从消息池中取出一个msg的方法: 一个Message由下面几个部分构成: a ...
分类:
移动开发 时间:
2016-04-28 16:51:30
阅读次数:
281
相关源码
framework/base/core/java/andorid/os/Handler.java
framework/base/core/java/andorid/os/Looper.java
framework/base/core/java/andorid/os/Message.java
framework/base/core/java/andorid/os/MessageQueue.j...
分类:
移动开发 时间:
2016-04-26 20:49:14
阅读次数:
181
概览 Android消息机制是Android操作系统中比较重要的一块。具体使用方法在这里不再阐述,可以参考Android的官方开发文档。 消息机制的主要用途有两方面: 1、线程之间的通信。比如在子线程中想更新UI,就通过发送更新消息到UI线程中来实现。 2、任务延迟执行。比如30秒后执行刷新任务等。 ...
分类:
移动开发 时间:
2016-04-26 11:00:25
阅读次数:
192
本篇主要介绍Android中的消息机制,即Looper、Handler是如何协同工作的; Looper:主要用来管理当前线程的消息队列,每个线程只能有一个Looper Handler:用来将消息(Message)插入到当前线程的消息队列,并负责分发Looper中的消息,将消息发送到当前线程执行 具体 ...
分类:
移动开发 时间:
2016-04-25 13:13:06
阅读次数:
274
概括来说,Handler是Android中引入的一种让开发者参与处理线程中消息循环的机制。我们在使用Handler的时候与Message打交道最多,Message是Hanlder机制向开发人员暴露出来的相关类,可以通过Message类完成大部分操作Handler的功能。但作为程序员,我不能只知道怎么用Handler,还要知道其内部如何实现的。Handler的内部实现主要涉及到如下几个类: Thre...
分类:
其他好文 时间:
2016-04-22 20:39:59
阅读次数:
319
当我们相册中的图片有几千张的时候,你快速的拖动滚动条到底部,怎么样才能保证图片加载的流畅性以及避免OOM呢
1.使用Lru算法对图片进行缓存保证流畅性以及避免OOM
2.图片加载肯定是要异步进行的,那么就涉及到多线程的并发进行,使用线程池对任务进行调度
3.使用android内部的异步消息机制Looper+Handler对taskQueu...
分类:
其他好文 时间:
2016-04-22 19:55:08
阅读次数:
155
因为在android中经常用到handler来处理异步任务,通常用于接收消息,来操作UIThread,其中提到涉及到的looper对象就是保存在Threadlocal中的,因此研究下Threadlocal的源码。 分析都是基于android sdk 23 源码进行的,ThreadLocal在android和jdk中的实现可能并不一致。 在最初使用Threadlocal的时候,很容易会产生的误解就...
分类:
移动开发 时间:
2016-04-22 19:31:51
阅读次数:
268
在主线程中运行的部分,都可以直接使用Handler,因为在主线程启动的过程中(ActivityThread的main函数里)会调用Looper.prepareMainLooper(),Looper类中也直接定义了一个static的looper实例sMainLooper用于存放主线程的Looper,可 ...
分类:
移动开发 时间:
2016-04-18 18:56:14
阅读次数:
186
1、线程间通信机制 首先,looper、handler、messagequeue三者共同实现了android系统里线程间通信机制。 如在A、B两个子线程之间需要传递消息,首先给每个子线程绑定一套handler、looper、messagequeue机制,然后这三个对象都与其所属线程对应。 然后A线程 ...
分类:
移动开发 时间:
2016-04-17 13:07:32
阅读次数:
220