用户退出应用程序时如何在共享首选项中存储值?
How to store value in Shared Preferences when user quits from application?
当用户退出我的应用程序时,如何在 Sharedpreferences 中存储值?
我试过这段代码,但它对我不起作用:
@Override
protected void onDestroy() {
// TODO Auto-generated method stub
//enter code here
super.onDestroy();
editor.putString("Check_activity", "true");
editor.commit();
}
这是一个在计算器中保存静音按键模式首选项的示例:
public class Calc extends Activity {
public static final String PREFS_NAME = "MyPrefsFile";
@Override
protected void onCreate(Bundle state){
super.onCreate(state);
. . .
// Restore preferences
SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
boolean silent = settings.getBoolean("silentMode", false);
setSilent(silent);
}
@Override
protected void onStop(){
super.onStop();
// We need an Editor object to make preference changes.
// All objects are from android.context.Context
SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
SharedPreferences.Editor editor = settings.edit();
editor.putBoolean("silentMode", mSilentMode);
// Commit the edits!
editor.commit();
}
}
如果用户使用主页按钮退出应用程序,则不一定调用 onDestroy()。
看看
Android Activity android 应用的生命周期。
选择另一个功能,例如onPause() 保存重要信息。
请注意 onStop()
和 onDestroy()
通常是可以杀死的。在该方法 returns 之后,托管 activity 的进程可能随时被系统杀死,而无需执行其另一行代码。因此,您应该使用 onPause()
方法将任何持久数据(例如用户编辑)写入存储。
此外,方法 onSaveInstanceState(Bundle)
在将 activity 置于这样的背景状态之前被调用,允许您将 activity 中的任何动态实例状态保存到给定的捆绑包,如果 activity 需要重新创建,稍后将在 onCreate(Bundle)
中收到。
例如,考虑以下应用程序代码片段:
public class DemoActivity extends Activity {
...
static final int DATA_ONE = 0;
static final int DATA_TWO = 1;
private SharedPreferences mPrefs;
private int mData;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
SharedPreferences mPrefs = getSharedPreferences();
mData = mPrefs.getInt("data_no",DATA_ONE);
}
protected void onPause() {
super.onPause();
SharedPreferences.Editor ed = mPrefs.edit();
ed.putInt("data_no", mData);
ed.commit();
}
}
当用户退出我的应用程序时,如何在 Sharedpreferences 中存储值?
我试过这段代码,但它对我不起作用:
@Override
protected void onDestroy() {
// TODO Auto-generated method stub
//enter code here
super.onDestroy();
editor.putString("Check_activity", "true");
editor.commit();
}
这是一个在计算器中保存静音按键模式首选项的示例:
public class Calc extends Activity {
public static final String PREFS_NAME = "MyPrefsFile";
@Override
protected void onCreate(Bundle state){
super.onCreate(state);
. . .
// Restore preferences
SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
boolean silent = settings.getBoolean("silentMode", false);
setSilent(silent);
}
@Override
protected void onStop(){
super.onStop();
// We need an Editor object to make preference changes.
// All objects are from android.context.Context
SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
SharedPreferences.Editor editor = settings.edit();
editor.putBoolean("silentMode", mSilentMode);
// Commit the edits!
editor.commit();
}
}
如果用户使用主页按钮退出应用程序,则不一定调用 onDestroy()。
看看
Android Activity android 应用的生命周期。
选择另一个功能,例如onPause() 保存重要信息。
请注意 onStop()
和 onDestroy()
通常是可以杀死的。在该方法 returns 之后,托管 activity 的进程可能随时被系统杀死,而无需执行其另一行代码。因此,您应该使用 onPause()
方法将任何持久数据(例如用户编辑)写入存储。
此外,方法 onSaveInstanceState(Bundle)
在将 activity 置于这样的背景状态之前被调用,允许您将 activity 中的任何动态实例状态保存到给定的捆绑包,如果 activity 需要重新创建,稍后将在 onCreate(Bundle)
中收到。
例如,考虑以下应用程序代码片段:
public class DemoActivity extends Activity {
...
static final int DATA_ONE = 0;
static final int DATA_TWO = 1;
private SharedPreferences mPrefs;
private int mData;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
SharedPreferences mPrefs = getSharedPreferences();
mData = mPrefs.getInt("data_no",DATA_ONE);
}
protected void onPause() {
super.onPause();
SharedPreferences.Editor ed = mPrefs.edit();
ed.putInt("data_no", mData);
ed.commit();
}
}