线程执行指定的时间。

时间:2012-06-05 10:23:30

标签: java android multithreading

对于每 30秒,记录将存储在 SQLite DB 中。

我想在 30秒内执行一个线程,将记录数发布到我们的服务器中。

如果线程超过 30秒,则自行终止线程。

3 个答案:

答案 0 :(得分:3)

使用计时器如下:

Timer t = new Timer();
  t.schedule(new TimerTask() {

      @Override
      public void run() {                   //timer

          System.out.println("done");
          this.cancel();

      }
  }, 30000L);

答案 1 :(得分:1)

查看Handlers,特别是postDelayed(Runnable, long)方法。

这是一种指定将来运行的代码的轻量级方法,在您的情况下,您可以将其设置为30 seconds并检查有问题的代码是否仍在运行。

(例如,通过在代码运行时将布尔值设置为true)并通过任何可用的方法将其终止。

答案 2 :(得分:1)

  1. 使用thread.sleep(30000);使线程休眠30秒。
  2. 使用run()方法实现用于在DB中存储数据的代码。
  3. 完成存储后,记录的数据使用thread.interrupt();
  4. 注意:不要使用thread.stop();,因为它是不推荐使用的方法。