Java SharedReference在返回到“活动”时不更新值,但只保留初始“活动加载”值

Java SharedReference在返回到“活动”时不更新值,但只保留初始“活动加载”值,java,android,android-activity,sharedpreferences,Java,Android,Android Activity,Sharedpreferences,因此,我尝试使用SharedReferences将值从活动传递给类。问题如下: 在初始加载活动时,值存储在SharedReferences中,但如果我退出活动并返回,并尝试更新值,SharedReferences似乎不会更新,并保持在活动初始加载的值 某类函数 恢复活动 我想做的是: 我必须将一个整数从活动发送到一个特定的类,如果我返回到活动,那么我需要存储更新值,这样类将能够再次访问新更新的值。我只能访问上下文,不能访问活动。如果我试图创建一个接口回调来与活动通信,这会导致错误。因此,此选项已

因此,我尝试使用SharedReferences将值从活动传递给类。问题如下:

在初始加载活动时,值存储在SharedReferences中,但如果我退出活动并返回,并尝试更新值,SharedReferences似乎不会更新,并保持在活动初始加载的值

某类函数

恢复活动

我想做的是:

我必须将一个整数从活动发送到一个特定的类,如果我返回到活动,那么我需要存储更新值,这样类将能够再次访问新更新的值。我只能访问上下文,不能访问活动。如果我试图创建一个接口回调来与活动通信,这会导致错误。因此,此选项已被取消,因此我正在尽我所能做到这一点。

为了获得更好的结果,请在退出应用程序时通过其键删除SharedReference

在您退出应用程序时,只需清除SharedReference,如下所示:

SharedPreferences.Editor editor = sharedPreferences.edit();
editor.remove("selected_category"); //Just remove it by its specific key
editor.commit();

然后,当您在同一个键上返回应用程序或使用新键时,它将再次加载并保存新值

提供更多信息,你的目标是什么
@Override
public void onResume() {
    super.onResume();
    int tmp = Integer.parseInt(getIntent().getStringExtra("CategoryIndex"));
    //store the category in the shared preferences
    SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
    SharedPreferences.Editor editor = sharedPreferences.edit();
    editor.putInt("selected_category", tmp);
    editor.commit();
}
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.remove("selected_category"); //Just remove it by its specific key
editor.commit();