Java 使用共享优先权来节省一些时间

Java 使用共享优先权来节省一些时间,java,android,sharedpreferences,Java,Android,Sharedpreferences,运行过程中的android、java、SharedReferences、datad。我想要的是,如果我关闭或暂停我的应用程序,ints值将被保存,因此当我再次打开它时,我可以将最后一个值取回 到目前为止,我一直在尝试使用1 int来学习如何使用 protected void onPause(){ SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0); SharedPreferences.Editor ed

运行过程中的android、java、SharedReferences、datad。我想要的是,如果我关闭或暂停我的应用程序,ints值将被保存,因此当我再次打开它时,我可以将最后一个值取回

到目前为止,我一直在尝试使用1 int来学习如何使用

protected void onPause(){
    SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
    SharedPreferences.Editor editor = settings.edit(); 
    editor.putInt("valueSave",valueToSave ); 
    editor.commit();
} 

@Override 
protected void onResume(){
    SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0); 
}
但是值不会被保存。。。我做错了什么

编辑:已添加onCreate

@Override
public void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.program);
    //SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
    SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
    //settings = getSharedPreferences(PREFS_NAME, 0);
    valueToSave = settings.getInt("valueSave",valueToSave);

尝试通过以下方式使用应用程序上下文获取SharedReference:

要保存首选项,请执行以下操作:

int valueToSave = 1;
SharedPreferences.Editor editor = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()).edit();
editor.putInt("someValue", valueToSave);
editor.commit();
SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
int savedvalue = settings.getInt("someValue");
要从首选项检索,请执行以下操作:

int valueToSave = 1;
SharedPreferences.Editor editor = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()).edit();
editor.putInt("someValue", valueToSave);
editor.commit();
SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
int savedvalue = settings.getInt("someValue");

您是否尝试从
SharedReferences
对象中实际获取保存的整数?例如,在
onResume()
方法中尝试
valueToSave=settings.getInt(PREFS\u NAME,0)
来检索它。添加了它并要求添加super.onResume()和super.onPause()。但是仍然得到初始值对不起,我之前的建议应该是
valueToSave=settings.getInt(“valueSave”,0)
,但是您现在可能已经知道了-注意键
“valueSave”
。你也看过Android开发者网站上的吗?0是它的值?这是默认值,如果首选项(尚未)不存在,应该分配给变量。在您的情况下,这种情况永远不会发生,除非第一次使用该应用程序(因为在该场景中,
onPause()
还不会被调用)。显然,您可以将
0
更改为更适合您的用例的值。您可以在任何地方使用它,只要您能够为它提供正确的上下文。(在本例中,您需要应用程序上下文)。另外,很抱歉,我遗漏了重要的类限定符,我使用PreferenceManager来获取共享首选项,而不是ActivityHelper方法。但是这如何知道正确的值呢?已将其添加到onCreate,但它不起作用…该行允许您访问应用程序中所有组件共享的首选项对象。然后,您可以在下一行使用int savedValue=settings.getInt(“valueSave”);我添加了我的onCreat。。。哦,我想我发现了错误。让我检查一下,它在这里给出了错误设置;表示将字符串cat添加到int