当我在应用程序的任何阶段最小化并重新打开应用程序时,它会从头开始

问题描述 投票:0回答:1

通常,如果我们在活动中最小化应用程序,那么它将处于暂停状态,因此当我们返回应用程序时,它应该从我们之前离开的同一个活动开始,以便活动将恢复。

但是我的应用程序(它基本上是一个简单的益智游戏)并不是这样的。如果我在游戏的任何阶段最小化,然后如果我回到游戏,它会从我的游戏的首页开始全新的游戏。最奇怪的是,如果我按下后退按钮,它会将之前最小化的活动调到前面。我调试我的代码,发现我的游戏上有一个倒计时器,这导致了这个问题。如果我删除倒计时,它会完美地工作,这意味着它从我离开的同一活动开始,如果游戏最小化,则永远不会开始新游戏。

在我的游戏中,我有两个活动,第一个活动只有一个“开始”按钮,第二个活动有倒计时器。因此,如果我最小化第二个活动并重新打开应用程序,那么全新的应用程序将启动,同时按回调出之前最小化的打开的应用程序。第二个活动代码是:

public class GameCore extends ActionBarActivity {

// COUNTDOWN VARIABLE
CountDownTimer countdown_timer;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_game);

    if (countdown_timer != null)
        countdown_timer.cancel();
    start_countDown(120000);


}

private void start_countDown(long millisInFuture) {
    // TODO Auto-generated method stub
    countdown_timer = new CountDownTimer(millisInFuture, 1000) {

        public void onTick(long millisUntilFinished) {


        }

        public void onFinish() {


        }
    }.start();
}

}

我不明白如果用户最小化游戏,为什么倒计时强制打开新游戏。任何人都可以给我一些倒计时的替代方法或解决方案吗?提前致谢。

android android-activity android-context
1个回答
0
投票

在您的活动标记的清单文件中添加 android:noHistory="false" 标记。

<activity
        android:name=".ui.MainActivity"
        android:exported="true"
        android:windowSoftInputMode="stateVisible|adjustResize"
        android:noHistory="false">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
© www.soinside.com 2019 - 2024. All rights reserved.