我已经使用广播接收器来改变我的片段内每24小时变量的值。共享偏好值不更新第二次android
自变量的值被重新初始化之前的初始化时,我已经使用共享偏好的片段重新启动每次保存值,以便它不会一次又一次地重新初始化。
问题是,该值被更改一次,不会再次更新。因此,如果该值为10则切换到11,但随后并没有去12
这是广播接收器
public class AlarmReciever extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
String intentImageName = intent.getStringExtra("imageName");
int numberImageName = Integer.parseInt(intentImageName) +1;
EventBus.getDefault().post(new ImageNameEvent(""+numberImageName));;
}
这是片段用于从广播接收器获取的价值EventBus功能
@Subscribe
public void onEvent(ImageNameEvent event) {
imagename = Integer.parseInt(event.getMessage());
SharedPreferences.Editor editor = preferences.edit();
editor.putInt("image", imagename);
editor.apply();
}
这是Fragment的onCreate函数,其中检索共享首选项的值。
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
scheduleAlarm();
preferences = PreferenceManager.getDefaultSharedPreferences(getActivity());
int name = preferences.getInt("image", 0);
if (name != 0) {
imagename = name;
}
}
任何帮助,将不胜感激。相反editor.apply的
你有没有考虑过使用SharedPreferenceChangeListener来做这件事? –