在开发过程中遇到了下面的问题
android.view.ViewRootImpl$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.
网上查询了一下,发现是因为Android系统中的视图组件并不是线程安全的,如果要更新视图,必须在主线程中更新,不可以在子线程中执行更新的操作。
所以可以用两种方法来更新UI
1.利用Activity.runOnUiThread(Runnable)把更新ui的代码创建在Runnable中,这样Runnable对象就能在ui程序中被调用。如果当前线程是UI线程,那么行动是立即执行。如果当前线程不是UI线程,操作是发布到事件队列的UI线程
2.利用Handler,在Handler的handleMessage中处理UI的更新