public static final long TIMEOUT = 60000;
public static final long SYSTEM_TIME = System.currentTimeMillis();
我的应用程序的TIMEOUT值设置为60000,我有我的系统时间。现在我怎么知道50 seconds
已经过去了,我需要向最终用户显示一条消息。
if (TIMEOUT - SYSTEM_TIME <= 10000) {
Toast.makeText(getApplicationContext(), "10 Seconds Left", Toast.LENGTH_LONG).show();
disconnectHandler.postDelayed(disconnectCallback, DISCONNECT_TIMEOUT);
}
答案 0 :(得分:1)
如果您不需要在该主题中执行其他操作,则可以使用sleep(50000)
。
答案 1 :(得分:1)
这是一次性运行特定任务的方法:
new Timer().schedule(new TimerTask() {
@Override
public void run() {
// TODO
...
}
}, TIMEOUT);
该文件是here(由jimpanzer报道)
答案 2 :(得分:1)
也许你可以使用这样的东西:
long startTime = SystemClock.elapsedRealtime();
// do what you want
long endTime = SystemClock.elapsedRealtime();
long ellapsedTime = endTime - startTime;
if (ellapsedTime>TIME_OUT) {
// do stuff
}
答案 3 :(得分:1)
也许我错了或者还没有足够的咖啡,但Timeout是60000,你的系统价值更高 - 所有毫升都是从1970年开始的(如果我在这里也没有错)。这意味着你的结果来自TIMEOUT - SYSTEM_TIME是负数,因此是一个负数,因此小于10000.所以你的if语句总是运行。