当在非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
在实际应用中经常会遇到比较耗时任务的处理,比如网络连接,数据库操作等情况时,如果这些操作都是放在主线程(UI线程)中,则会造成UI的假死现象,Android中可以使用AsyncTask和Handler两种异步方式来解决这种问题。...
分类:
移动开发 时间:
2014-08-24 11:42:42
阅读次数:
269
在Android中实现异步任务机制有两种方式,Handler和AsyncTask。Handler模式需要为每一个任务创建一个新的线程,任务完成后通过Handler实例向UI线程发送消息,完成界面的更新,这种方式对于整个过程的控制比较精细,但也是有缺点的,例如代码相对臃肿,在多个任务同时执行时,不易对...
分类:
移动开发 时间:
2014-08-23 16:41:01
阅读次数:
274
在网络线程中接收并解析出来的信息 用一个 全局的 CCString(其实就是C++ std::string的封装) 接成功,但是在UI线程中使用这个全局的变量时候,却显示不出来(经验证不为空)刚开始以为是多线程操作的问题呢,然后调用scheduleOnce(schedule_selector(Are...
分类:
其他好文 时间:
2014-08-22 10:31:26
阅读次数:
194
SWT中UI线程和非UI线程的区别,非UI线程如何访问UI...
分类:
编程语言 时间:
2014-08-20 22:48:23
阅读次数:
430
在开发Android移动客户端的时候往往要使用多线程来进行操作,我们通常会将耗时的操作放在单独的线程执行,避免其占用主线程而给用户带来不好的用户体验。但是在子线程中无法去操作主线程(UI 线程),在子线程中操作UI线程会出现错误。因此android提供了一个类Handler来在子线程中来更新UI线程...
分类:
移动开发 时间:
2014-08-20 12:27:32
阅读次数:
309
一、AsyncTask介绍Android提供了几种在其他线程中访问UI线程的方法。Activity.runOnUiThread( Runnable ) View.post( Runnable ) View.postDelayed( Runnable, long ) Hanlder 这...
分类:
移动开发 时间:
2014-08-19 18:22:41
阅读次数:
320
delegate 有一个begininvoke 方法,会开一个新线程去处理。当需要处理UI 控件时,需要判断,caller是不是和该控件在一个线程上,否则就要用delegate回到ui 线程。并且调用控件的Invoke方法。例如private delegate void SetTextHandler...
分类:
其他好文 时间:
2014-08-19 16:29:14
阅读次数:
186
做过android开发的朋友们都知道,Android UI线程(或者叫主线程)是不安全的,如果想要在子线程里进行UI操作,就需要借助android的异步消息处理机制。最近学习了AsyncTask类,感觉很好用,特此学习总结。 AsyncTask是一个抽象类,所以我们在使用的时候需要创建一个子类...
分类:
移动开发 时间:
2014-08-17 18:19:52
阅读次数:
251
在做界面程序时,常常需要一些数据类,界面元素通过绑定等方式显示出数据,然而由于UI线程不是线程安全的,一般都需要通过Invoke等方式来调用界面控件。但对于数据绑定bindingList而言,没法响应listchang事件,导致后端的grid等控件不能更新数据。废了好大的劲终于找到一个UIBindi...
分类:
编程语言 时间:
2014-08-17 16:51:32
阅读次数:
432