这两个的差别就在于是否有参数Looper,而Looper是一个线程相关的对象。
何谓线程相关的变量?就是线程间不能共享的对象,只在本线程内有作用的对象。
那么Looper对象的作用是什么?
从我个人的理解,Looper类就是对MessageQueue的封装,它主要做的是两件事:
1)构造Looper对象,初始化MessageQueue,我们可以从其构造函数看到:
可以看到,Loop对象被创建之后,会被放到ThreadLocal变量中,而ThreadLocal正是线程局部变量,这说明了关于Looper的一个特...
分类:
移动开发 时间:
2014-10-27 17:41:19
阅读次数:
173
MainActivity例如以下:package cc.c;import android.app.Activity;import android.os.Bundle;import android.os.Handler;import android.os.Looper;import android.o...
分类:
编程语言 时间:
2014-10-25 15:48:26
阅读次数:
151
一:handler,looper,message,messagequeue,threadhandler: 消息处理着,负责Message消息的发送(handler.sendMessage(....))以及处理消息,对于handler处理消息则需要实现handlerMessage(Message ms...
分类:
移动开发 时间:
2014-10-23 22:20:56
阅读次数:
336
1、handler 与Looper 与MessageQueue 、Message之间的关系
handler:是处理主线程(ui线程)处理耗时操作的线程,通过post message到MessageQueue队列中,使用handler需要实现 handlerMessage方法,通过更新主线程ui
Looper:每个Looper对应一个MessageQueue,在handler之前Looper....
分类:
移动开发 时间:
2014-10-21 15:27:17
阅读次数:
217
============问题描述============ 写了一个Service,在里面启动了一个线程,于是实例化了一个Handler来处理消息。但运行时抛出异常说不能在没有调用Looper.prepare()的线程中创建Handler。然后我在Service的onCreate()中调用Looper...
分类:
其他好文 时间:
2014-10-20 22:39:05
阅读次数:
148
Message:消息,其中包含了消息ID,消息处理对象以及处理的数据等,由MessageQueue统一列队,终由Handler处理。
Handler:处理者,负责Message的发送及处理。使用Handler时,需要实现handleMessage(Message?msg...
分类:
移动开发 时间:
2014-10-20 15:29:30
阅读次数:
268
都是因为在新开的线程中更新UI才出错,子线程中更新主线程UI需要用到Handler.
今天有出现如下错误,代码如下:
send.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
new Th...
分类:
移动开发 时间:
2014-10-18 21:05:06
阅读次数:
177
public static final Looper myLooper() {
return (Looper)sThreadLocal.get();
}
先来个Handler执行过程的总结:
1、 Looper.prepare()方法
为当前线程绑定looper,
在looper构造方法中创建一个messageQueue
...
分类:
其他好文 时间:
2014-10-18 17:03:47
阅读次数:
178
上一篇文章提到了Android系统的UI线程是一种带消息循环(Looper)机制的线程,同时Android也提供了封装有消息循环(Looper)的HandlerThread类,这种线程,可以绑定Handler()对象,并通过Handler的sendMessage()函数向线程发送消息,通过handleMessage()函数,处理线程接收到的..
分类:
移动开发 时间:
2014-10-18 03:08:41
阅读次数:
187
最近面试一些Android开发的应聘者,除了基本的Activity生命周期等基础问题以外,我一般还会问如下两个问题:(1)Service与Thread有什么区别?(2)在Activity里newHandler()和在自己创建的Thread中newHandler()有什么区别?第一个问题其实是一个伪命令,因为Service是Android..
分类:
移动开发 时间:
2014-10-16 03:17:02
阅读次数:
248