Android 从活动返回时,防止在恢复时触发(难以解释)

Android 从活动返回时,防止在恢复时触发(难以解释),android,timer,resume,Android,Timer,Resume,我目前有一个点击游戏,当用户按下home(主页)按钮时,使用on pause(暂停)、stop(停止)和onresume(恢复)方法,计时器被“取消”,剩余时间被保存为最长时间,然后在onresume(恢复)中创建一个新的计时器,剩余时间-很好,但是现在,当计时器完成完整运行并且用户开始启动新活动时,即排行榜/设置等。。返回再次启动onResume并再次开始剩余1秒的倒计时,是否有方法在从某个活动或类似活动返回时停止启动它 下面你会看到一个博奇的工作,我尝试了徒劳地使用,非常混乱和有效,但我的想

我目前有一个点击游戏,当用户按下home(主页)按钮时,使用on pause(暂停)、stop(停止)和onresume(恢复)方法,计时器被“取消”,剩余时间被保存为最长时间,然后在onresume(恢复)中创建一个新的计时器,剩余时间-很好,但是现在,当计时器完成完整运行并且用户开始启动新活动时,即排行榜/设置等。。返回再次启动onResume并再次开始剩余1秒的倒计时,是否有方法在从某个活动或类似活动返回时停止启动它

下面你会看到一个博奇的工作,我尝试了徒劳地使用,非常混乱和有效,但我的想法用完了

  protected void onResume() {
        super.onResume();

        if (timeLeft < 1000) {

        } else {
            if (timeLeft <= 0) {

            } else {

                if (newActivityOpened == true) {

                } else {
                    if (isTimerRunning == true) {
                        startCountDownTimer();
                    }

                }

            }
        }
    }
protectedvoid onResume(){
super.onResume();
如果(时间间隔<1000){
}否则{

如果(timeLeft为什么不在活动中使用一个简单的全局布尔值?每次启动某些活动时都将其设置为true。在onResume()中检查布尔值。如果看到它设置为true,则不要启动倒计时。否则启动它

protected void onResume() { 
    if( !newActivityOpened){
        if ( isTimerRunning ) {
            startCountDownTimer();
        }
    }
    super.onResume();
}

不确定我是否正确地解决了这个问题,但这应该可以让它正常工作。

只需创建一个标志,指示当前是否正在计时/倒计时。一旦启动计时器,设置
timing=true;
一旦完成
timing=false;

然后在你的简历中,你就知道你的计时器是否已经开始运行了

protected void onResume() {
    if (timing)
    {
        //  create your timer here
    }
    else{
        // do nothing?
    }
}

当然,你需要做的就是以下几点

// Code where you start the new Activity...
stopCountDownTimer();
if (timeLeft < 1000)
    isTimerRunning = false;
startActivity(intent);

这是代码中的“newActivityOpened”,尽管它不能正常工作。当您从其他活动返回时,是否希望再次创建以激发?
if (isTimerRunning)
    startCountDownTimer();