在Android中,主要通过MessageQueue、Looper和Handler三个类来实现Android应用程序的消息处理。其中,MessageQueue类用来描述消息队列;Looper类用来创建消息队列,以及进入消息循环;Handler类则用来发送消息和接收消息。 本文将主要对Handler....
分类:
移动开发 时间:
2014-08-05 18:57:39
阅读次数:
310
作为IT新手,总以为只要有时间,有精力,什么东西都能做出来。这种念头我也有过,但很快就熄灭了,因为现实是残酷的,就算一开始的时间和精力非常充足,也会随着项目的推进而逐步消磨殆尽。我们会发现,自己越来越消极怠工,只是在无意义的敲代码,敲的还是网上抄来的代码,如果不行,继续找。 这就是项目进度没有规划好...
分类:
移动开发 时间:
2014-08-05 18:57:09
阅读次数:
293
自定义的线程中是不能更新UI的,但是如果遇到更新UI的事情,我们可以用handler的post()方法来将更新UI的方法体,直接传送到主线程中,这样就能直接更新UI了。Handler的post()方法就是将Runnable中的代码段传送到主线程。布局文件就是个textView,我就不贴了。全部代码p...
分类:
编程语言 时间:
2014-07-31 23:16:40
阅读次数:
206
一、从自己开启的线程中给主线程发送信息,更新UI这个实例的效果是,在线程中通过handler发送一条信息给handler,然后通过handler更改UI线程中,textview的文字。主要方法是(在线程中生成消息对象,并发送消息。这里可以设置what,我图简单就没设置): class MyThre....
分类:
其他好文 时间:
2014-07-31 16:27:46
阅读次数:
220
这里主要讲的是Android中线程的概念,自己的线程不能更新UI线程中的视图。如果把Handler设置在自己的线程中,那么必须建立一个Looper。至于为什么在Activity中建立Handler就不用建立一个Looper呢,因为在UI线程初始化时就已经有一个Loop了,所以直接用就行。这里还需要注...
分类:
其他好文 时间:
2014-07-31 16:11:06
阅读次数:
181
之前学的时候碰了两壁:1、android4.0以上不能在主线程使用网络,2、不能在线程更新UI状态因为网上很多给出的代码都有这两个隐患,所以很多人都调用不成功。明白了这两点下面就好办了。PS:代码非原创,由网络上android4.0以下的低版本代码改进而来,适用于android4.0以上,当然之前的...
分类:
移动开发 时间:
2014-07-29 11:01:56
阅读次数:
259
Android在4.0之后执行线程更新UI操作会报异常:CalledFromWrongThreadException:Only the original thread that created a view hierarchy can touch its views.那么你肯定能看到很多文章说and...
分类:
移动开发 时间:
2014-07-29 10:57:06
阅读次数:
398
【关键字】:3个参数,4个步骤第一步:表示任务执行前的操作第二步:主要完成耗时操作第三步:主要是更新UI操作第四步:产生最终结果以下实例中代表的含义为:第一步:显示进度条第二步:(此任务必不可少)在后台执行任务,将进度值传给第三步,将结果传给第四步;第三步:进度值更新第四步:产生最终结果1、添加网络...
分类:
其他好文 时间:
2014-07-25 02:19:14
阅读次数:
297
在使用Handler更新UI的时候,我是这样写的: public?class?SampleActivity?extends?Activity?{
??private?final?Handler?mLeakyHandler?=?new?Handler()?{
????@Override
????public?voi...
分类:
其他好文 时间:
2014-07-23 17:39:51
阅读次数:
281
在后台下载图片,下载完成后更新UI是一个很常见的需求。在没有AsyncTask类之前,我们需要写许多thread和Handler的代码去实现这个功能,有了AsyncTask,一切变得简单了。下面摘抄谷歌官方介绍:AsyncTask is designed to be a helper class a...
分类:
移动开发 时间:
2014-07-17 22:37:48
阅读次数:
308