所以我尝试使用SharedPreferences将Activity中的值传递给Class。问题如下:
在初始加载Activity时,该值存储在SharedPreferences中,但如果我退出Activity并返回并尝试更新该值,则SharedPreferences似乎不会更新并保持在初始加载活动。
某些课程功能
private void populatePlayerQueue(){
int category_index;
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this.getContext());
category_index = sharedPreferences.getInt("selected_category", 0);
}
活动onResume
@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();
}
我要做的是:
我必须从活动向特定类发送一个整数,如果我回到活动,那么我需要存储更新值,这样类就能够再次访问新更新的值。我只能访问上下文而不是活动。如果我尝试创建接口回调以与活动通信,则会导致错误。所以这个选项被淘汰了,因此我正在尽我所能去做。
答案 0 :(得分:0)
为了更好的结果在退出应用程序时通过其键删除 SharedPreference。
在退出应用程序的情况下,只需清除SharedPreference,如:
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.remove("selected_category"); //Just remove it by its specific key
editor.commit();
然后,当您使用相同的密钥返回应用程序时,它将显然再次加载并保存新值,或者您可以使用新的值。