gpt4 book ai didi

Android 计时器在开始新 Activity 后不会重置

转载 作者:行者123 更新时间:2023-11-30 02:49:35 25 4
gpt4 key购买 nike

我要求从一个 Activity (例如 Apple)开始,计时器自动开始运行 20 秒,一旦计时器结束,它就应该结束另一个 Activity (例如 Orange)。

但 Apple 中有一个按钮,允许我单击另一个 Apple Activity (本质上是重复),并且计时器会在新 Apple 中再次重置。

定时器的代码如下

       new CountDownTimer(20000, 1000) {
public void onTick(long millisUntilFinished) {

public void onFinish() {
Intent i = new Intent(Apple.this, Orange.class);
Log.i(LG, "From Apple to Orange");

startActivity(i);
}
}.start();

如果Apple激活一次,退出到Orange,没有问题。

但是,如果一个 Apple(1) Activity 被激活,然后另一个 Apple(2) Activity 被激活,Apple(1) 的计时器似乎不会停止。例如,如果当 Apple(1) 在 10 秒时我退出 Apple(1) 到 Apple(2),对于 Apple(2),在退出到 Orange 之前只计算 10 秒(不是完整的 20 秒)。

我哪里出错了?

最佳答案

发生这种情况是因为您没有保存 Apple 的实例状态。你有一些选择:

1) 您可以将计时器移出 UI 线程:

Resuming CountdownTimer after rotation

2) 当 Apple 调用 Apple 时只保存 millisUntilFinished 的实例然后在第二个实例中从该值恢复计时器可能更简单。这应该有所帮助(您使用 Activity 的 onPause 和 onResume 方法):

Countdown timer with pause and resume

关于Android 计时器在开始新 Activity 后不会重置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24433228/

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