Ich habe einen Rundfunkempfänger verwendet alle 24 Stunden, um den Wert einer Variablen in meinem Fragmente zu ändern.Gemeinsame Präferenzen Wert nicht aktualisiert das zweite Mal android
Da der Wert der Variablen beim Neustart des Fragments auf die vorherige Initialisierung reinitialisiert wird, habe ich gemeinsame Einstellungen verwendet, um den Wert jedes Mal zu speichern, damit er nicht immer wieder neu initialisiert wird.
Das Problem ist, dass der Wert einmal geändert wird, und die Aktualisierung wird nicht wieder. so dass, wenn der Wert 10 ist es ändert sich auf 11, aber dann nicht geht 12.
Dies ist der Rundfunkempfänger
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));;
}
Dies ist die EventBus Funktion in dem Fragment verwendet, um den Wert aus dem BroadcastReceiver zu erhalten
Dies ist die onCreate-Funktion des Fragments, in der der Wert der gemeinsamen Voreinstellungen abgerufen wird.
@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;
}
}
Jede Hilfe wäre willkommen.
Haben Sie darüber nachgedacht eine SharedPreferenceChangeListener dafür verwenden? –