我们都知道,android的UI操作并不是线程安全的,因此如果多个线程同时操作UI的话,会导致线程安全问题,因此android制订了一条规则,只允许UI线程(即主线程)进行UI操作,而且由于一些耗时操作例如下载,网络访问等,如果放在主线程执行,这样可能会抛出一个异常 ANR异常(Application
Not Responding)将会阻塞UI线程,从而会导致程序无响应。因此我们会将一些耗时操...
分类:
其他好文 时间:
2016-05-13 15:05:55
阅读次数:
243
Android 中的消息模型(Message,MessageQueue,handle,looper,)
Android 中的消息通讯
1.Android 中线程的应用机制?
1)Android 中所有的耗时操作应在工作线程执行。
2)Android 中所有的UI操作应该在主线程(UI线程)执行。
FAQ?
1)主线程执行执行耗时操作好吗? 不好,这样会阻塞UI操作。
2)工作执行完耗...
分类:
移动开发 时间:
2016-05-12 20:53:29
阅读次数:
190
Android消息机制大家都不陌生,想必大家也都看过Handler、Looper的源码(看过可以直接看末尾重点,一款监控APP卡顿情况的控件),下面,网易视频云技术专家就整合一下这方面的资料,加深对这方面的印象。
用法
private Handler mHandler = new Handler() { @Override
public void handleMessage(Messa...
分类:
移动开发 时间:
2016-05-12 19:42:25
阅读次数:
270
我们知道安卓中的UI线程不是线程安全的,我们不能在UI线程中进行耗时操作,通常我们的做法是开启一个子线程在子线程中处理耗时操作,但是安卓规定不允许在子线程中进行UI的更新操作,通常我们会通过Handler机制来完成该功能,即当子线程中耗时操作完成后,在子线程中通过Handler向主线程发送消息,在主线程中的Handler的handleMessage方法中处理接受到的消息。这就是安卓中的消息机制,安...
分类:
移动开发 时间:
2016-05-12 18:56:29
阅读次数:
272
Handler依赖于Looper,它的创建需要该线程下的Looper已经存在,而该 Looper又会有与当前的线程进行绑定,所以该Handler所处线程就是Looper创建时所在的线程。
Handler的dispatchMessage方法是在创建Handler时所用的Looper中执行的,这样就成功的将代码逻辑切换到指定的线程中去执行了。
所以,handler发送消息(send)可以在...
分类:
其他好文 时间:
2016-05-12 14:39:47
阅读次数:
204
流程总结
Looper.prepare():本线程中保存一个Looper实例,然后该实例中保存一个MessageQueue对象;因为Looper.prepare()在一个线程中只能调用一次,所以MessageQueue在一个线程中只会存在一个。Looper.loop():轮询MessageQueue,回调msg.target.dispatchMessage(msg)方法。Handle...
分类:
移动开发 时间:
2016-05-11 07:18:17
阅读次数:
234
Okhttp简单辅助类与debug注意事项 先贴代码(代码不全,仅供参考) import android.os.Handler;import android.os.Looper;import android.support.v4.util.ArrayMap; import com.ztesoft.z ...
分类:
Web程序 时间:
2016-05-10 20:44:36
阅读次数:
1581
源码分析public class HandlerThread extends Thread {
int mPriority;// 指定线程优先级
int mTid = -1;
Looper mLooper; public HandlerThread(String name) {
super(name);
mPriority = Proce...
分类:
移动开发 时间:
2016-05-10 13:00:14
阅读次数:
257
近来找了一些关于android线程间通信的资料,整理学习了一下,并制作了一个简单的例子。 andriod提供了 Handler 和 Looper 来满足线程间的通信。例如一个子线程从网络上下载了一副图片,当它下载完成后会发送消息给主线程,这个消息是通过绑定在主线程的Handler来传递的。 在And ...
分类:
移动开发 时间:
2016-05-09 08:31:27
阅读次数:
221
Android客户端和PHP、MySQL搭建的服务器之间的简单交互,实现登录功能 。 实现原理图: Handler消息机制原理: Handler机制主要包括4个关键对象,分别是Message、Handler、MessageQueue、Looper。 下面对这4个关键对象进行简单的介绍。 1.Mess ...
分类:
移动开发 时间:
2016-05-08 16:39:24
阅读次数:
243