码迷,mamicode.com
首页 > 移动开发 > 详细

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

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

标签:android   线程   ui控件   handler   view   

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控件

标签:android   线程   ui控件   handler   view   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!