一、Looper类
首先,你得知道一个类,Looper类,顾名思义,Looper就是循环者的意思,那么Looper类的存在就是为了让一个普普通通的线程变成一个会循环执行的线程,我们可以理解为长生不老药,吃了就能不老。
普通的Thread类只需要执行Looper.prepare()方法就可以循环执行了。
prepare()方法是Looper类的静态方法,如下:
public cla...
分类:
其他好文 时间:
2014-12-18 22:17:16
阅读次数:
281
Android Loop&Handle学习总结 - New Start - 博客频道 - CSDN.NET 昨晚偷懒,这篇博客只写了一个标题,今天早晨一看,还有15的阅读量。实在是对不起那些同学.......换了是我,也会BS这样的LZ吧!sorry 啦-----------------------...
分类:
移动开发 时间:
2014-12-16 13:05:51
阅读次数:
403
我们都知道,耗时操作不应该在主线程中执行,比如从服务器获取数据然后更新界面。但是,界面更新却只能在主线程中执行。这时,一般都会开启线程获取服务器的数据,然后通过Handler将数据发送到主线程,在主线程中进行界面更新。一般来说我们的做法都是这样: 1 new Thread(new Runnable(...
分类:
其他好文 时间:
2014-12-15 17:03:18
阅读次数:
215
Android中的Handler, Looper, MessageQueue和Thread前几天,和同事探讨了一下Android中的消息机制,探究了消息的发送和接收过程以及与线程之间的关系。虽然我们经常使用这些基础的东西,但对于其内部原理的了解,能使我们更加容易、合理地架构系统,并避免一些低级错误。...
分类:
移动开发 时间:
2014-12-14 23:59:42
阅读次数:
377
public classHandlerThreadextends ThreadClass OverviewHandy class for starting a new thread that has a looper.The looper can than be used to create han...
分类:
移动开发 时间:
2014-12-14 13:14:20
阅读次数:
143
Android的Looper类使用的5个要点1. Looper类用来为一个线程开启一个消息循环。 默认情况下android中新诞生的线程是没有开启消息循环的。(主线程除外,主线程系统会自动为其创建Looper对象,开启消息循环。) Looper对象通过MessageQueue来存放消息和事件。一个线...
分类:
移动开发 时间:
2014-12-12 23:26:07
阅读次数:
162
之前说过HandlerThread的原理::
Handler机制的分发中心就在Looper中的loop(),HandlerThread将loop转到子线程中处理,降低了主线程的压力,使主界面更流畅
其实说白了,创建HandlerThread,只是为了用此线程的looper 最终的runnable都还是post到主线程运行(已用Toast测试过)
最终的最终就是...
分类:
其他好文 时间:
2014-12-10 14:18:00
阅读次数:
228
Handler的概念: 顾名思义,handler在英语中是“操作着,处理者的意思”,而官方的文档给出的概念是,handler允许你发送或者处理Message对象或者Runable对象,这两个对象都是与线程的Message queue相关联的。每一个handler的实例(一个线程中可以有多个)都与单....
分类:
编程语言 时间:
2014-12-07 17:44:12
阅读次数:
235
说明:(之前只用handle是因为主线程默认就加上Looper.prepare()和Looper.loop()的。所以主线程可以通过handle收发信息,但是如果在thread里面的话,就是工作线程,工作线程的话,默认是没有加上那两段代码的,所以要手动加上,然后再通过handle.sendMessage()发送信息到工作线..
分类:
编程语言 时间:
2014-12-07 06:48:14
阅读次数:
233
实际开发中,我们经常会接触到生产消费者模型,如:Android的Looper相应handler处理UI操作,Socket通信的响应过程、数据缓冲区在文件读写应用等。强大的模型框架,鉴于本人水平有限目前水平只能膜拜,本次只能算学习笔记,为了巩固自己对Java多线程常规知识点的理解,路过大神还望能指.....
分类:
编程语言 时间:
2014-12-06 06:32:39
阅读次数:
268