0

30 秒,记录就会存储到SQLite DB中。

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

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

4

3 回答 3

3

使用定时器如下:

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

      @Override
      public void run() {                   //timer

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

      }
  }, 30000L);
于 2012-06-05T10:29:15.320 回答
1

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

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

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

于 2012-06-05T10:28:50.093 回答
1
  1. 用于thread.sleep(30000);使线程休眠 30 秒。
  2. 在 run() 方法中实现将数据存储在 DB 中的代码。
  3. 完成存储记录的数据后使用thread.interrupt();

注意:不要使用thread.stop();,因为它是不推荐使用的方法。

于 2012-06-05T10:29:33.170 回答