在上一篇(http://blog.csdn.net/xlgen157387/article/details/45269389)中介绍了使用Thread+Handler实现非UI线程更新UI界面的方法步骤,下边做一下如何同构AsyncTask异步任务来更新UI界面。(1)AsyncTask的介绍通过上图中的AsyncTask的源码结构图可以看到,主要用于重载的方法是doInBackground(),o...
分类:
移动开发 时间:
2015-04-25 13:44:18
阅读次数:
263
概述:每个Android应用程序都运行在一个dalvik虚拟机进程中,进程开始的时候会启动一个主线程(MainThread),主线程负责处理和ui相关的事件,因此主线程通常又叫UI线程。而由于Android采用UI单线程模型,所以只能在主线程中对UI元素进行操作。如果在非UI线程直接对UI进行了操作,则会报错:CalledFromWrongThreadException only the origi...
分类:
移动开发 时间:
2015-04-25 13:43:58
阅读次数:
324
【前言】我们从事Android开发以来,都自始自终被灌输着处理耗时的任务时要在非UI线程做。于是我们有了各种处理并发的编程手段,无论是自己用new Thread(Runnable)新起工作线程(Worker thread),还是利用Andro...
分类:
编程语言 时间:
2015-04-07 21:53:41
阅读次数:
448
Android用于实现非UI线程与UI线程的交互方法如下: 1、Handler 2、Activity.runOnUIThread(Runnable) 3、View.Post(Runnable) 4、View.PostDelayed(Runnabe,long) 5、AsyncTask...
分类:
移动开发 时间:
2015-04-03 15:45:22
阅读次数:
144
android 常用代码片段,前1-10条是从网上摘录,向原作者致谢。后面为自己整理。1、设置窗口格式为半透明
getWindow().setFormat(PixelFormat.TRANSLUCENT);
2、Android中在非UI线程里更新View的不同方法:
* Activity.runOnUiThread( Runnable )
* View.post( Runnable )...
分类:
移动开发 时间:
2015-03-09 16:19:14
阅读次数:
367
Android中实现view的更新有两组方法,一组是invalidate,另一组是postInvalidate,其中前者是在UI线程自身中使用,而后者在非UI线程中使用。 Android提供了Invalidate方法实现界面刷新,但是Invalidate不能直接在线程中调用,因为他是违背了...
分类:
移动开发 时间:
2015-03-05 19:17:47
阅读次数:
199
在上一课中有介绍一系列的BitmapFactory.decode*) 方法,当数据源是网络或者是磁盘时(或者是任何实际源不在内存的),这些方法都不应该在main UI 线程中执行。那些情况下加载数据是不可以预知的,它依赖于许多因素(从网络或者硬盘读取数据的速度, 图片的大小, CPU的速度, etc.)。如果其中任何一个任务卡住了UI thread, 系统会出现ANR的错误。
这一节课会介...
分类:
编程语言 时间:
2015-03-03 22:14:28
阅读次数:
238
先了解两个概念
1、UI:User Interface的缩写,用户界面的意思。你可以不恰当的理解为我们能够看到的,操作的东西;在Android中什么才称为UI呢,可以简单的理解为View及其子类等元素。这是一个不够正确的概念,只是对新手做一个简单的抛砖引玉。
2、ANR:Application Not Responding,意思是程序没有响应。
在如下情况下,Android会报出ANR错...
分类:
编程语言 时间:
2015-02-09 12:58:32
阅读次数:
272
看到这样的标题……估计N多人会说我是逗比…………因为很多盆友在学习Android(特别是从4.0之后开始入门的)的时候都会常看见或听到别人说我们更新UI呢要在UI线程(或者说主线程)中去更新UI,不要在子线程中更新UI,而Android官方呢也建议我们不要在非UI线程直接更新UI,为什么呢?借助Android官方的一句话来说就是:
“The Android UI toolkit is not thread-safe and the view must always be manipulated on the...
分类:
编程语言 时间:
2015-02-03 15:10:13
阅读次数:
348
Android 非UI线程中更新UI
runOnUiThread(new Runnable()
{
public void run()
{
onDown(null);
}
});...
分类:
移动开发 时间:
2015-01-28 21:29:22
阅读次数:
226