大家都知道,不可以在 其他线程访问 UI 线程,访问 UI 线程包括给 依赖属性设置值、读取依赖属性、调用方法(如果方法里面修改了依赖属性)等。一旦访问UI线程,那么就会报错,为了解决这个问题,需要使用本文的方法,让后台线程访问 UI 线程。 本文提供三个方法可以让其他线程访问 UI 线程 第一个方 ...
分类:
编程语言 时间:
2019-10-12 13:23:39
阅读次数:
112
在使用view post的时候,可以直接在非UI线程中更新UI控件,在onclick中创建一个线程 每一秒更新一下空间上的数值,如果直接在线程中显示setText的数值,程序会报错 通过vew。post的函数,将Runnable加入到ui线程的消息队列,直接更新ui中的数据,不需要使用handle进 ...
分类:
其他好文 时间:
2017-09-30 13:12:13
阅读次数:
167
先了解两个概念
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
当在非UI线程中更新UI(程序界面)时会出现如下图所示的异常:
Only the original thread that created a view hierarchy can touch its views.
那如何才能在非UI线程中更细UI呢?
方法有很多种,在这里主要介绍两种:
第一种:在需要更新UI的代码行后加Looper.prepare();与Looper.loop();两句话即可。如:...
分类:
移动开发 时间:
2014-08-27 20:34:08
阅读次数:
352
1、使用Thread+Handler实现非UI线程更新UI界面...
分类:
移动开发 时间:
2014-07-16 13:01:21
阅读次数:
221