【问题标题】:Can i make a thread which run after every 5 sec and update a views value in android?我可以创建一个每 5 秒运行一次的线程并更新 android 中的视图值吗?
【发布时间】:2012-08-10 13:17:22
【问题描述】:

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

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

还有其他方法可以做到这一点吗?

【问题讨论】:

    标签: android multithreading exception


    【解决方案1】:

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

    1.使用处理程序Handler从线程更新UI 2 也可以使用AsyncTaskonProgressUpdate(Progress...) 来更新ui,

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          【解决方案4】:

          您可以为此使用 Handler :

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

          在 onCreate(){ // 方法中

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

          runnable = new 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
          

          } }

          }

          【讨论】:

            猜你喜欢
            • 2013-10-15
            • 2015-06-22
            • 1970-01-01
            • 2017-04-20
            • 1970-01-01
            • 2015-03-27
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多