对于每 30秒,记录将存储在 SQLite DB 中。
我想在 30秒内执行一个线程,将记录数发布到我们的服务器中。
如果线程超过 30秒,则自行终止线程。
答案 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)
thread.sleep(30000);
使线程休眠30秒。 thread.interrupt();
注意:不要使用thread.stop();
,因为它是不推荐使用的方法。