最近学习Android,学习的时候会用Java的一些机制去理解,但是往往还是有些区别的。
下面我们来看看Android下面的线程使用方法,这里通常会用到Handler。
Handler的作用就是一个队列,先进先出,实现了异步机制。
下面是这个工程的main.xml配置文件:(两个例子的使用同一个xml)
先来看看第一个例子:
在上面的例子中,Thread使用的是同一个,按照Java的常理应该是不同的,但是这里确实是同一个,大家可以自己测试下。
Handler与主线程是同一线程时,如果程序在设计的时候需要线程初始化较长时间或者下载文件,这种情况下,主线程是出于等待状态的,甚至出现假死现象。
在cmd100.com的视频讲解中,mars老师也讲的很清楚了,我大部分是参考其源代码再做修改。
解决办法是是用HandlerThread类来创建独立于主线程的新线程,实现异步机制,不会影响到主线程的运行。
解决代码如下:
最后感谢cmd100.com视频教程,整理出来,供大家参考使用。