想知道你是否可以提供帮助。我认为在调用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。有谁知道为什么会这样?感谢。
答案 0 :(得分:0)
见上面的评论。在调用super的onDestroy()之前调用自定义代码。实际上,我使用所有“退出”功能执行此操作 - 暂停,停止和销毁。我这样做是为了确保在super执行它需要做的事情之前执行代码。