gpt4 book ai didi

java - 即使用户切换应用程序,CountDownTimer 也会运行

转载 作者:太空狗 更新时间:2023-10-29 14:51:37 41 4
gpt4 key购买 nike

我正在构建一款 Android 游戏,我需要显示倒计时。为了让用户不作弊,如果用户更换应用程序,我不能停止倒计时,因为他们会有更多时间思考答案。

我需要做的是让 CountDownTimer 继续工作,即使我的应用程序当前不在前面(已调用 onPause)。

我想知道我的代码(似乎有效)是否可以解决问题,或者在某些情况下它是否会失败。

现在倒计时继续,当它变为 0 时,结果屏幕显示在当前应用程序上(当然,这不是我想要的)。我认为对于第二个问题,解决方案是存储一个变量或其他东西,并在启动结果屏幕之前检查它。

所以,总而言之,我想要的是即使用户更改当前应用程序也能继续倒计时,但是当倒计时变为 0 时,在用户返回游戏之前不要显示结果屏幕。

我的代码如下:

new CountDownTimer(10000, 1000) {

public void onTick(long millisUntilFinished) {
tvTime.setText(String.valueOf(millisUntilFinished / 1000));
}

public void onFinish() {
startActivity(new Intent(GameActivity.this, ResultActivity.class));
}
}.start();

谢谢。

最佳答案

只是让您了解应该做什么。可能应该使用 SystemClock.elapsedTime()

public class CountdownTimer {
private final long startTime = currentTime();
private final long totalTime;
private boolean isFinished = false;

public CountdownTimer(long millis) {
totalTime = millis;
}

public long timeLeft() {
return totalTime - (currentTime() - startTime);
}

public boolean isFinished() {
return isFinished || (isFinished = timeLeft() < 0);
}

protected long currentTime() {
return System.currentTimeMillis();
}
}

如果用户关闭了您的应用程序,那么您不应在他们身上重新打开它。让他们自己打开应用程序,发现他们的时间到了,或者显示通知。

关于java - 即使用户切换应用程序,CountDownTimer 也会运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34730273/

41 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com