Android上奇怪的共享偏好

Android上奇怪的共享偏好,android,android-fragments,sharedpreferences,Android,Android Fragments,Sharedpreferences,我有2个片段第一个用于计算,第二个用于设置 我使用onPause()方法上的SharedPreference.Editor.commit()保存设置。到目前为止,储蓄没有问题。我面临的问题是检索我的1st片段上的SharedReference值。每次按下count按钮时,我都检索到该值。第一次,我得到的值是更改前的值(这是我面临的问题),只有在第二次或更多次检索/按下count按钮时,我才会得到保存的值 我尝试更改设置,然后按home按钮从外部终止应用程序(触发onPause方法),当我重新打开

我有2个
片段
<代码>第一个用于计算,
第二个
用于设置

我使用
onPause()
方法上的
SharedPreference.Editor.commit()
保存设置。到目前为止,储蓄没有问题。我面临的问题是检索我的
1st片段
上的
SharedReference
值。每次按下
count
按钮时,我都检索到该值。第一次,我得到的值是更改前的值(这是我面临的问题),只有在第二次或更多次检索/按下
count
按钮时,我才会得到保存的值

我尝试更改设置,然后按
home
按钮从外部终止应用程序(触发
onPause
方法),当我重新打开设置时,值确实更改为我定义的设置。因此,我确信当触发
onPause
时,设置已保存

我想知道这里出了什么问题。非常感谢您的帮助

根据要求,这是我的
SettingFragment
上的保存代码:

@Override
public void onPause() {
        super.onPause();
        saveToPref();
    }

public void saveToPref() {
        SharedPreferences settings = getActivity().getSharedPreferences("mysettings", 0);
        Editor edit = settings.edit();
        edit.putString("begin", String.valueOf(ibegin)).putString("end", String.valueOf(iend)).commit();
    }

在其他地方初始化您的
SharedReferences
对象,并执行一次-可能在
onCreate
中执行。您没有看到更改的原因是,在某个位置打开了具有相同构造函数的
SharedReferences
的不同实例,并且这些实例的多个实例不会自动解析/合并。在执行此操作时,初始化编辑器
edit
实例以及
settings

好的,我发现了问题。问题在于,只有在我启动另一个活动时才会触发
onPause()。我更改了代码以触发
saveToPref()
您确定commit()的返回值为真吗?
。2.
您确定ibegin和iend始终是最新的吗?
我假设您第一次保存的是旧值。是的,因为我在
1st fragment
上第二次按
count
按钮时检索到的值就是我保存的值。问题是我第一次检索时,值是保存前的值。请尝试第一次将值更改为V1,然后第二次更改为V2。当您检查这些值时,得到的是V1或V2?我已尝试在我的
main活动中初始化它,并使用setter和getter获取
SharedReference
,但仍然存在问题。