保存按下后退button时的状态

我正在开发一个Android应用程序。 如果我按下后退button应保存我的应用程序的状态。我应该用什么来保存状态..AM所有这些onPause()onResume()onRestoresavedInstance() ??? 我应该使用哪些应用程序来保存应用程序的状态? 例如,当我按下退出button,我的整个应用程序应该退出我用完()?

  public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); s1=(Button)findViewById(R.id.sn1); s1.setOnClickListener(this); LoadPreferences(); s1.setEnabled(false); } public void SavePreferences() { SharedPreferences sharedPreferences = getPreferences(MODE_PRIVATE); SharedPreferences.Editor editor = sharedPreferences.edit(); editor.putBoolean("state", s1.isEnabled()); } public void LoadPreferences() { System.out.println("LoadPrefe"); SharedPreferences sharedPreferences = getPreferences(MODE_PRIVATE); Boolean state = sharedPreferences.getBoolean("state", false); s1.setEnabled(state); } @Override public void onBackPressed() { System.out.println("backbutton"); SavePreferences(); super.onBackPressed(); } 

Solutions Collecting From Web of "保存按下后退button时的状态"

你必须做的是,而不是使用KeyCode返回,你已经在你的活动覆盖下面的方法,

 @Override public void onBackPressed() { super.onBackPressed(); } 

然后使用SharedPrefrence保存Button的状态,下一次当你进入Activity时,从Sharedpreference获取值并相应地设置你的button的启用状态。

例,

 private void SavePreferences(){ SharedPreferences sharedPreferences = getPreferences(MODE_PRIVATE); SharedPreferences.Editor editor = sharedPreferences.edit(); editor.putBoolean("state", button.isEnabled()); editor.commit(); // I missed to save the data to preference here,. } private void LoadPreferences(){ SharedPreferences sharedPreferences = getPreferences(MODE_PRIVATE); Boolean state = sharedPreferences.getBoolean("state", false); button.setEnabled(state); } @Override public void onBackPressed() { SavePreferences(); super.onBackPressed(); } onCreate(Bundle savedInstanceState) { //just a rough sketch of where you should load the data LoadPreferences(); } 

你可以用这种方式

 public void onBackPressed() { // Save settings here }; 

当活动检测到用户按下后退键时调用。 默认的实现只是完成当前的活动,但是你可以覆盖它来做你想做的任何事情。

用这种方法保存你的应用程序状态。