-2

可能重复:
如何每 5 秒更新一次 textview 变量

我有两个任务要同时使用同一个数据文件。一个是读取 txt 文件并将其绘制在图表视图中。另一个任务是使用绘制的数据进行计算。我的 android 应用程序布局应该在图表视图上方的文本视图中具有这些计算结果,并且它应该在 5 秒内不断更新,同时在图表中动态地进行绘图。

我对第二个任务有疑问 - 更新在 while 循环中运行的 textview 中的值。我用过 Handler、Asynctask、Thread、Wait。它可以完美地用作 java 应用程序。但是,它可以用作 android 应用程序。我的应用程序要么强制关闭,要么在启动前延迟(即)应用程序仅在给定延迟后打开并显示 while 循环执行的最后一个值。我也在后台执行此操作,但它会影响绘图。

   while(p[y1]!=0)
 {
    rr = ((p[y1]-p[y1-1]));
    double x = rr/500;
    HR = (int) (60/x);                         
     final Handler handler=new Handler();
      handler.post(runnable);
          final Runnable runnable=new Runnable()
          {
          @Override
          public void run()
          {                      
                  hr.setText(String.valueOf(HR));
                handler.postDelayed(runnable, 5000);
          }
          };

          y1++;
            }

我希望 hr 值每 5 秒更新一次,而不影响图表。任何人请帮忙。在此先感谢您的帮助。

4

1 回答 1

0

您是否尝试过类似的方法,创建一个内部线程类,在其运行方法中执行您需要的操作。您也可以在运行时尝试 sleep 5 秒。确保您的 while 循环在 run 方法中。

我在下面的代码中,你在一个while循环中有线程,但你应该在一个线程中有循环。如果你在这样做时遇到任何问题,请告诉我。

boolean isAlive = true; //change it  to falst whenever u want to stop the thread
class localT extends Thread {

@Override
public void run() {
    while(isAlive) {

        try {
            sleep(5000);

            textView.setText("yourChanging text");
        } catch (InterruptedException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }
    super.run();
};

}

使用类似 localThread.start(); , kill// 在暂停、销毁时停止该线程。

于 2013-01-24T07:03:43.700 回答