【问题标题】:My app resets data when it is minimized我的应用程序在最小化时会重置数据
【发布时间】:2017-11-14 10:23:49
【问题描述】:

我做了一个安卓游戏,一旦我最小化它, 它会重置数据并刷新计时器,就像您从头开始游戏一样 我怎样才能做到不要这样做

我认为问题出在 OnStart 函数上

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

    // Reset score
    Configs.score = 0;
    scoreTxt.setText(String.valueOf(Configs.score));


    // Set progressBar and start the gameTimer
    pb = (ProgressBar)findViewById(R.id.gbProgressBar);
    progress = 0;
    pb.setProgress((int) progress);
    startGameTimer();


    // Get a random circle for letters
    Random r = new Random();
    randomCircle = r.nextInt(Configs.circlesArray.length);


    // Reset taps count
    tapsCount = -1;


    // Get a random word from words string-array
    getRandomWord();
}

【问题讨论】:

标签: java android


【解决方案1】:

onStart 每次应用启动时都会被调用。另一方面,onCreate 仅在应用程序启动时或在 Activity 进程被终止并重新启动后调用。通常最后一种情况是指在调用onStop 之后,activity 进程被杀死,但它还没有被销毁。

将该代码移至 onCreate,否则每次重新打开应用时都会调用该代码并重置它

【讨论】:

  • @Tim It's onStop,而不是 onDestroy。如果 onDestroy 被调用,下一次它创建自己是应用程序的一个新实例,无论如何创建它是很自然的(很明显,无需提及)
  • 你搞错了
  • @TimCastelijns 怎么倒退?
  • onCreate 仅在 onStop 之后调用,以防应用程序进程在 Activity 停止但尚未销毁时被杀死。你可以在图中看到它。当您启动先前已销毁/已完成的活动时,也会调用 onCreate
  • 那你有什么推荐给我的?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多