测试service中使用了一个Toast来打印log。 提示无法调用Looper.prepare() 加入后代码正常执行。 ?Looper.prepare();????
?Toast.makeText(getApplicationContext(),?"Services?Thread",?Toast.LENGTH_LO...
分类:
移动开发 时间:
2015-05-26 21:39:48
阅读次数:
800
基于以上几点也得拿出来分析分析,该篇博客从实例到源码完全进行了剖析(包含Handler、Message、MessageQueue、Looper、HandlerThread等源码),不同于网上很多只是分析局部的博客。...
分类:
移动开发 时间:
2015-05-25 11:32:25
阅读次数:
239
引言我们在做 Android 开发时,常常需要实现异步加载图片/网页/其他。事实上,要实现异步加载,就需要实现线程间通信,而在 Android 中结合使用 Handler、Looper、Message 能够让不同的线程通信,完成异步任务。虽然 Android 官方为我们提供了 AsyncTask 类来完成异步任务,但这个类存在许多问题,并不好用,而且,AsyncTask 也是通过 Handler 和...
分类:
移动开发 时间:
2015-05-24 11:42:16
阅读次数:
270
if (Looper.myLooper() != Looper.getMainLooper()) {
// If we finish marking off of the main thread, we need to
// actually do it on the main thread to ensure correct o...
分类:
移动开发 时间:
2015-05-22 19:11:05
阅读次数:
136
Handler创建,必须有个一个Looper,主线程自己创建了。其他线程需要自己创建,默认是没有的。创建方法 1. 这种方法是先创建一个系统定义好的HandlerThread,这个是跑在非UI线程中的,已经创建好了looper,直接用就可以了.创建handler有多个构造函数,具体看源码 ...
分类:
移动开发 时间:
2015-05-19 22:13:27
阅读次数:
184
这里先简单的写一个例子,后续会更新一些概念性的东西在里面。因为现在还不太理解这个。
1、只是听讲:handler是负责消息传输,looper负责消息回调,messagequeue是一个存储消息的容器。
2、在子线程中,要想实现消息的传送,需要获得looper对象进行回调。
package com.example.handledemos;
import android.app.Act...
分类:
其他好文 时间:
2015-05-18 19:00:15
阅读次数:
171
Handler,Looper,MessageQueue,Message总结...
分类:
其他好文 时间:
2015-05-14 22:11:40
阅读次数:
225
第五章进程与线程进程:一个应用程序就是一个进程(1)进程的优先级:ForegroundProcess前台进程a.当前用户正在操作的Activity所在的进程b.绑定了当前用户操作的Activity的service所在的进程c.通过调用了startForeground()方法提升优先级的service所在的进程d.正在调用onCreate..
分类:
移动开发 时间:
2015-05-14 20:43:19
阅读次数:
184
在线程内部有一个或者多个Hadnler对象,外部程序通过该Handler对象向线程发送异步消息,消息经由Hadnler传递到MessageQueue对象中,线程内部只能包含一个MessageQueue对象,主线程执行函数中从MessageQueue中读取消息,并回调Handler对象中的函数handleMessage()。
为更好地理解Handler的工作原理,先介绍有Handler一起工作的几...
分类:
其他好文 时间:
2015-05-13 22:04:15
阅读次数:
284
Android 消息机制涉及到的类主要有
Looper
Handler
Message、MessageQueue
HandlerThread
下面结合 Android API 22 的源码分析上面几个类的内部实现细节,以窥探其中的原理一二。Looper 消息循环Looper 是一个循环处理消息的类,Looper内部维护一个消息队列,循环的从消息队列中取出消息并处理,如果队列为空则等待新消息。Loop...
分类:
移动开发 时间:
2015-05-12 11:33:20
阅读次数:
172