计算开始时间和经过时间的时差

时间:2013-04-12 09:49:28

标签: java android

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);
}

4 个答案:

答案 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语句总是运行。