【发布时间】:2012-08-23 16:09:00
【问题描述】:
我正在开发一个安卓应用程序。如果我按下后退按钮,我的应用程序的状态应该被保存。我应该用什么来保存状态..我对所有这些onPause()、onResume() 或onRestoresavedInstance() 感到困惑?我应该使用哪些来保存我的应用程序的状态?例如,当我按下退出按钮时,我的整个应用程序应该退出我已经使用了 finish() ?
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();
}
【问题讨论】:
-
如果活动正在关闭,使用 onDestroy()
-
您要保存什么样的应用程序状态?一些文本框或列表值?
-
保存文本框或其他重要用户界面的值可以在 sharedpreferences 的帮助下完成。这样,即使应用程序退出或销毁,也可以从 sharedpreferences 中读取保存的值。
-
我有一个处于启用状态的按钮。如果我按下返回,我希望按钮应该处于相同的启用状态,但按钮变为禁用状态?如何保存该状态?
标签: android sharedpreferences android-lifecycle savestate