我正在创建一个计算器应用程序,当我的活动被发送到后台然后被带到前面时。它的结果变为零。我如何保存数据,并在下次重新创建活动时对其进行检索。
答案 0 :(得分:0)
使用SharedPreferences
之类的:
SharedPreferences preferences = null;
SharedPreferences.Editor editor = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
preferences = PreferenceManager.getDefaultSharedPreferences(this);
}
在onDestory()
中写道:
@Override
protected void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
editor = preferences.edit();
editor.putInt(YOUR_KEY, YOUR_VALUE);
editor.commit();
}
并在onStart()
中写道:
@Override
protected void onStart() {
// TODO Auto-generated method stub
super.onStart();
int result = preferences.getInt(YOUR_KEY, YOUR_VALUE);
}
希望这会对你有所帮助
答案 1 :(得分:0)
对于该特定情况,您希望使用Activity生命周期方法onSaveInstanceState
和onRestoreInstanceState
。覆盖这两种方法,然后在onSaveInstanceState
中保存必要的数据。在onCreate
或onRestoreInstanceState
检查是否存在已保存的数据,然后将其恢复到正确的位置。
注意:您也可以使用首选项或数据库,但这些通常用于应该持续超过单个后台/恢复周期的数据。 onSaveInstanceState
/ onRestoreInstanceState
方法专门用于将活动发送到后台然后稍后恢复的情况。