android.view.ViewRoot$CalledFromWrongThreadException的解决办法

android 是不允许子线程直接更新UI的,如果一定要在子线程直接更新UI就会出现android.view.ViewRoot$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.大概意思就是说 只有原来创建找个视图hierarchy的线程才可以修改修改它。

我的解决办法是使用Activity.runOnUiThread(Runnable),可以将更新UI的代码写在Runnable中,这样如果当前的线程是UI线程会直接运行,如果不是UI线程,会将Runnable示例发送至 UI线程中的MessageQuene中

时间: 2024-12-12 11:41:17

android.view.ViewRoot$CalledFromWrongThreadException的解决办法的相关文章

【Android】常见异常 —— android.view.WindowLeaked 分析以及解决办法

问题虽小,不过不知道还是比较麻烦的.异常信息: 10-22 10:19:38.651 12723-12723/cn.com.zte.uc E/WindowManager﹕ android.view.WindowLeaked: Activity cn.com.zte.uc.activites.shipTicket.OrderWrite1 has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView{423fee70

android webview ZoomButtonsController 导致android.view.WindowLeaked 问题彻底解决

Activity has leaked window android.widget.ZoomButtonsController that was originally added here android.view.WindowLeaked: 引起这个错误的原因是: 发现是webview的 ZoomButton,也就是那两个放大和缩小的按钮,导致的.如果设置为让他们出现,并且可以自动隐藏,那么,由于他们的自动隐藏是一个渐变的过程,所以在逐渐消失的过程中如果调用了父容器的destroy方法,就会导

Android Dependencies被误删除的解决办法

转自http://www.eoeandroid.com/thread-272679-1-1.html 第三方jar的导入方式 在新版本的ADT环境下,只需要在工程目录下新建libs文件夹(注意是libs不是lib),然后将第三方的jar复制进去,eclipse会自动将这个jar添加到Android Dependencies文件夹下,不必在通过BuildPath自己去修改了,也不需要ReferenceLibrary了. 另外,如果多个工程有关联的话,比如A工程设置为IsLibaray,B工程要引入

android.view.ViewRootImpl$CalledFromWrongThreadException: Only the original thread that created a vi

android.view.ViewRootImpl$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views 这个错误相信大家一定不陌生,特别是刚学习android时,会引起的错误,意思是指在子线程中对UI做了操作,现在写个简单的demo: public class MainActivity extends Activity { privat

android异常:android.view.ViewRootImpl$CalledFromWrongThreadException

android异常:android.view.ViewRootImpl$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views. 出现这个异常的原因是你在子线程中修改了主线程中的组件的状态或数据. android规定:只有在原始线程中(主线程,UI线程)才能修改显示组件.

Android Eclipse工程开发中的常见调试问题(二)android.os.NetworkOnMainThreadException 异常的解决办法

android.os.NetworkOnMainThreadException 异常的解决办法, 刚开是把HttpURLConnectionnection 打开连接这个方法放在UI线程里了,可能不是线程安全的,而且这个方法请求是需要等待的,所以就抛出了这个异常,后来用子线程打开的HttpURLConnection, 一切就都正常了,只要在主线程里开启子线程就行了.子线程利用URL 问题解决.下面贴一段代码 String file1 = SERVER_PATH; URL url = new URL

Xamarin Android SDK无法更新的解决办法

Xamarin Android SDK无法更新的解决办法,更新时候,提示警告信息:A folder failed to be moved.出现这种情况,往往是从Visual Studio或者Xamarin Studio中直接运行了SDK Mananger.解决办法是从SDK目录中,手动运行SDK Manager.exe.如果还是无法解决,右击该文件,选择以管理员身份运行即可.

【转】Ubuntu 上编译Android出现cannot find -lstdc++解决办法

[转]Ubuntu 上编译Android出现cannot find -lstdc++解决办法 在Ubuntu 12.04 x86_64机器上编译Android出现下面错误,是因为找不到32bit的libstdc++.so库. /usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.6/libstdc++.so when searching for -lstdc++ /usr/bin/ld: skipping incom

【转】Android出现“Read-only file system”解决办法

原文网址:http://www.111cn.net/sj/android/44496.htm 下面介绍一篇Android出现“Read-only file system”解决办法 有碰到这类问题的朋友可参考参考. Android-出现Read-only file system的解决方法 输入命令:  代码如下 复制代码 mount -o remount rw /system (每次都要执行一次) 有的朋友说是是“/”的问题,命令改为:adb push AlarmClock.apk systema