前言:我们知道在android开发中不能在非ui线程的其他线程中更新ui,但是,有的时候我们需要在代码中执行一些诸如访问网络、查询数据库等耗时操作,为了不阻塞ui线程,我们时常会开启一个新的线程(工作线程)来执行这些耗时操作,然后我们可能需要将查询到的数据渲染到ui组件上,那么这个时候我们就需要考虑异步更新ui的问题了。android中有下列几种异步更新ui的解决办法:
Activity.runOn...
分类:
移动开发 时间:
2016-04-26 19:33:51
阅读次数:
246
引起这种错误多半是由于在非UI线程刷新界面,解决此问题可以使用Dispatcher this.Dispatcher.Invoke(new Action(() => { UpdateUI(string infor); })); ...
分类:
编程语言 时间:
2016-04-13 12:49:44
阅读次数:
163
2016-04-07 OOM手记 最近组里改友盟上的BUG,NullReference——防空,非UI线程访问UI控件?ClassCastException,Dialog在Activity之后dismis/show...各种问题慢慢解决了,因为大多就是业务逻辑的处理有问题。最后就剩下一个OOM的大头 ...
分类:
移动开发 时间:
2016-04-10 17:38:06
阅读次数:
528
1、Display.getCurrent()获取的是当前线程的display对象,如果当前在非UI线程中那么获取到的display对象为空; 一般Display.getCurrent() 用来判断当前是否UI线程2、异步刷新问题,异步任务需要放到非UI线程中执行,回头更新UI的时候需要使用disp....
分类:
系统相关 时间:
2015-12-01 12:30:54
阅读次数:
178
Android中实现view的更新有两组方法,一组是invalidate,另一组是postInvalidate,其中前者是在UI线程自身中使用,而后者在非UI线程中使用。Android提供了Invalidate方法实现界面刷新,但是Invalidate不能直接在线程中调用,因为他是违背了单线程模型:...
分类:
移动开发 时间:
2015-11-05 15:08:05
阅读次数:
189
在很多情况下,应用处理顺序如下: 1.在UI线程中收到事件 2.在非UI线程中处理相应事件 3.UI根据处理结果进行刷新 为了简化改模式,Android1.5及以上版本定义了AsyncTask类,AsyncTask类可以让应用执行后台操作,并通知UI线程操作结果。为了简单起见,对用户隐藏Th...
分类:
其他好文 时间:
2015-10-21 09:15:26
阅读次数:
189
当主线程sendMessage后,子线程便会调用handleMessage来获取你所发送的Message。我的主线程向子线程发送消息时携带了数据,子线程根据主线程发送来的数据进行数据库查询,并将查询后的结果返回给该主线程: ? ?...
分类:
移动开发 时间:
2015-09-07 11:17:38
阅读次数:
206
说到Handler想必大家都经常用到,在非UI线程更新UI那可是利器,用起来也非常容易上手从使用上来说,我们只需要关注sendMessage和handleMessage即可所以我们先从Handler和Message来说起,先看一小段代码 public static final int UPDA...
分类:
其他好文 时间:
2015-09-04 07:34:21
阅读次数:
303
最近比较火的是OKhttp+picasso解析混合使用
接下来我们先上Okhttp抓抓数据。显然Okhttp里面的那个onResponse 和 onFailure是非UI线程,那么我们改变他的话只有发送个通知出来让其他的UI线程来处理UI变化了,这个时候,屌丝王Handler出场了。
1.okhttp的get请求封装
直接上代码: public static final int ok...
分类:
Web程序 时间:
2015-08-31 17:25:56
阅读次数:
695
近期自学到了线程这一块,用了一上午的时间终于搞出来了主、子线程间的相互通信。当主线程sendMessage后,子线程便会调用handleMessage来获取你所发送的Message。我的主线程向子线程发送消息时携带了数据,子线程根据主线程发送来的数据进行数据库查询,并将查询后的结果返回给该主线程.....
分类:
移动开发 时间:
2015-08-31 17:06:09
阅读次数:
193