应用程序在第二次启动时显示空白屏幕(在调用onDestroy之后)

时间:2014-05-04 15:36:21

标签: android andengine

想知道你是否可以提供帮助。我认为在调用ondestroy时Android并没有完全杀死我的应用程序。这是因为在第二次发布时我最终得到一个空白屏幕。我已经读过这很常见,你可以在ondestroy方法中调用System.exit(0)(我知道有些人对此不以为然),但我不知道该怎么做。另外,如果我在ondestroy中有System.exit(0),我的应用程序根本不会打开。有什么想法吗?

因此申请不会以:

开头
@Override
protected void onDestroy() {
    // TODO Auto-generated method stub
    super.onDestroy();
    System.exit(0);
}

这是我之前的代码,它没有正确杀死应用程序:

@Override
public void onDestroy() {
    super.onDestroy();
    //System.exit(0);
    try{
    Log.e("destroyed", "");
      int highSCORE = ResourcesManager.getInstance().getHighScore();

      SharedPreferences settings = getSharedPreferences(SHARED_PREFS_MAIN, 0);
      SharedPreferences.Editor editor = settings.edit();
      if (highSCORE > highScore)
        {
            editor.putInt("highest", highSCORE);
        }

        editor.putBoolean("music", ResourcesManager.getInstance().isMusicAllowed());
        editor.putBoolean("sound", ResourcesManager.getInstance().isSoundAllowed());
      // Commit the edits!
      editor.commit();

    // Destroy the AdView.
    if (adView != null) {
        adView.destroy();
    }
    }catch(Exception e){

    }
}
编辑:我真的对此感到困惑,但似乎一旦创建应用程序就会调用onDestroy,这显然与生命周期相矛盾。我找到了一个工作,通过检查onDestroy来检查游戏是否已经加载,如果它已杀死应用程序。这可以在这个网站上找到:http://www.matim-dev.com/handling-onresume-onpause-and-ondestroy.html。有谁知道为什么会这样?感谢。

1 个答案:

答案 0 :(得分:0)

见上面的评论。在调用super的onDestroy()之前调用自定义代码。实际上,我使用所有“退出”功能执行此操作 - 暂停,停止和销毁。我这样做是为了确保在super执行它需要做的事情之前执行代码。