上一篇博文给出了Android中基于HandlerLooper机制实现线程间通信的两个典型实例。本文将对该机制的基本原理进行较深入的研究。个人认为,学好Android编程最好的老师就是Android的源代码,下面将基于Android-19的源码进行分析,重点阐述分析思路。要分析HandlerLooper机制,自然..
分类:
移动开发 时间:
2014-10-15 15:06:01
阅读次数:
283
10-12 17:02:55.500: E/AndroidRuntime(28343): FATAL EXCEPTION: Timer-210-12 17:02:55.500: E/AndroidRuntime(28343): java.lang.RuntimeException: Can't cr...
分类:
移动开发 时间:
2014-10-14 19:03:09
阅读次数:
268
MainActivity如下:
package cc.c;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.os.Message;
import android.widget.TextView;
/...
分类:
其他好文 时间:
2014-10-12 14:21:28
阅读次数:
174
MainActivity如下:
package cc.cn;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.os.Message;
import android.util.Log;
import android.app.Activity;
/**
*...
分类:
其他好文 时间:
2014-10-12 12:57:18
阅读次数:
286
在看Android代码运行机制时,经常会遇到一些不太理解的词,在此把我遇到的一些词以及理解整理下:1、Android系统,整体来讲它是属于消息驱动型类型,简单说就是系统中应用的各个组件都是靠消息来交互,系统中会有一个主线程会循环执行Looper中的消息队列。2、编译时:只有编译..
分类:
移动开发 时间:
2014-10-12 03:31:27
阅读次数:
166
Android的UI操作不是线程安全的(出于提高性能考虑,避免实现多线程同步等机制所引入的延时),若多个线程同时对UI元素进行操作,可能导致线程安全问题。因此,Android中做了严格的规定:只有UI主线程才能对UI进行设置与操作。在实际编程中,为了避免UI界面长时间得不到响应而导..
分类:
移动开发 时间:
2014-10-11 18:41:36
阅读次数:
240
尽管MessageQueue提供了直接读/写的函数接口,但对于程序员来说,一般不直接读/写消息队列。之前了解到,在Looper.loop()函数中,当取出消息后,会回调msg.target对象的handleMessage()函数,而msg.target的类型正是Handler。
/**
* Run the message queue in this thread. Be sure to call
* {@link #quit()} to end the loop.
...
分类:
其他好文 时间:
2014-10-09 16:59:58
阅读次数:
243
关于Handler的总结。Message:消息,当中包括了消息ID,消息处理对象以及处理的数据等,由MessageQueue统一列队,终由Handler处理。Handler:处理者,负责Message的发送及处理。使用Handler时,须要实现handleMessage(Message msg)方....
分类:
移动开发 时间:
2014-10-03 12:43:54
阅读次数:
169
====================问题描述==================== 写了一个Service,在里面启动了一个线程,于是实例化了一个Handler来处理消息。但运行时抛出异常说不能在没有调用Looper.prepare()的线程中创建Handler。然后我在Service的onC...
分类:
其他好文 时间:
2014-09-30 16:41:09
阅读次数:
203
> Android系统中的视图组件并不是线程安全的,如果要更新视图,必须在主线程中更新,不可以在子线程中执行更新的操作。 > Android系统中的Looper负责管理线程的消息队列和消息循环。通过Looper.myLooper()得到当前...
分类:
移动开发 时间:
2014-09-29 01:31:37
阅读次数:
480