-1

我在 android 中创建一个线程,每 5 秒更新一次视图值。但我得到了这个异常:-

"E/AndroidRuntime(30793): android.view.ViewRoot$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views."

有没有其他选择可以做到这一点?

4

4 回答 4

1

您正在使用线程来更新 UI。

1.使用handler Handler从线程 2 更新 UI 你也可以使用AsyncTask onProgressUpdate(Progress...) 来更新 ui,

于 2012-08-10T13:31:50.253 回答
0

好吧,尝试在后台线程中使用递归函数并在函数结束时等待。

于 2012-08-10T13:39:06.957 回答
0

例如,您可以为此使用 Handler:

处理程序句柄 = null; 可运行可运行 = null;

在 onCreate(){ // 方法

handler = new Handler();
handler.post(runnable);

可运行=新可运行(){

无效运行(){

 handler.postDelayed(runnable,1000);// run will be call in every 1 seconds

 // your code here to implement it will execute in every i second

} }

}

于 2012-08-11T08:21:52.270 回答
0

您可以有一个 Timer Task 来获取值(线程可以执行)并使用处理程序将值传递给 UI 线程。只能从主/ UI 线程更新视图。

于 2012-08-10T13:36:54.557 回答