任务管理器的强制关闭删除我的应用程序的首选项,但为什么?

时间:2011-10-25 13:59:34

标签: android

我正在构建我的第一款Android游戏,我的问题是:

当我使用手机的“后退\退出”按钮退出应用程序时,我的应用程序正在关闭,我需要的所有信息都很好地保存到首选项文件中:

 @Override
 protected void onPause() 
 {

 super.onPause();

 // My pref file
 SharedPreferences preferences = getSharedPreferences(PREF_FILE_NAME, 0);
 SharedPreferences.Editor editor = preferences.edit();

 // Put the values to the pref file
 editor.putInt("CsereHolTart", CsereHolTart);
 editor.putInt("melyikAct", melyikAct);
 editor.putInt("Silver", Silver);
 editor.putInt("Strength", Strength);
 editor.putInt("Intelligence", Intelligence);
 editor.putInt("Dexterity", Dexterity);
 editor.putInt("Speed", Speed);
 editor.putInt("Vitality", Vitality);
 editor.putInt("Morale", Morale);
 editor.putInt("cHp", cHp);
 editor.putInt("cMp", cMp);

 editor.putInt("isGame", 1);



 // Commit to storage
 editor.commit();


  }

请参阅?我只是使用onPause()方法将我需要的所有东西实际放到首选项文件中:

public static final String PREF_FILE_NAME = "PrefFile";

当我打开应用程序时,所有保存的数据都被很好地读取,我的应用程序继续使用我保存然后加载的有效值从右边开始。

这很好,但是:

当我用我的手机的任务管理器关闭我的应用程序时,所以我手动执行“强制关闭”,似乎onPause()没有运行,或者其他我不知道的事情。所以问题是当我用任务管理器关闭我的应用程序时,所有加载都失败了,似乎所有保存的数据都被删除了。因为每个偏好都以这种方式加载到默认值。

有人能告诉我怎么办才能解决这个任务经理的强制关闭问题? 我希望每次用户退出应用程序时保存并加载,或者打开应用程序。

1 个答案:

答案 0 :(得分:1)

  

当我用手机的任务管理器关闭我的应用程序时,所以我手动执行“强制关闭”,似乎onPause()没有运行

如果您在前台并通过某种任务管理器终止该过程,则不会调用onPause()onPause()仅在某些其他活动占据前景时被调用。