首页 > 移动平台 > 详细

Android新线程中更新主线程中的UI控件

时间:2015-08-05 18:21:05      阅读:333      评论:0      收藏:0      [点我收藏+]

Android中的View都不是线程安全的,所以如果在某一个新线程中直接更新主线程中的UI控件时就会报如下错误:
android.view.ViewRootImpl$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.

为了解决在另一个线程中更新UI控件的问题,我们可以使用如下几种解决方案:
1. 自己写Handler解决,参见《Android中Handler的使用》
2. 使用Activity#runOnUiThread(Runnable)方法,该方法接收一个Runnable对象作为参数,我们需要在该Runnalble的run方法中更新View,该方法内部也使用了Handler。
3. 使用View中的postXXX等方法:
View#post(Runnable)
View#postDelayed(Runnable, long)
View#postDelayed(Runnable action, long delayMillis)
这几个方法也是接收Runnable对象作为参数,也是在该Runnable的run方法中更新View,这几个方法内部也是用Handler实现的。

版权声明:本文为博主原创文章,未经博主允许不得转载。

Android新线程中更新主线程中的UI控件

原文:http://blog.csdn.net/iispring/article/details/47300819

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!