Ich arbeite an einer Android-Anwendung, die von anderen mobilen per SMS gesteuert werden kann. Ich verwende PreferenceScreen
als Layout (Einstellungen Teil der App). Das Layout wird aktualisiert, wenn onResume()
aufgerufen wird.Update-Schnittstelle dynamisch
Wenn der Befehl (SMS) über ein anderes Mobiltelefon gesendet wird, schnüffelt der im Hintergrund laufende Dienst die eingehenden SMS und ändert die in SharedPreferences gespeicherten Einstellungen. Um diese Änderungen zu sehen, muss meine Aktivität den Code in onResume
ausführen. Wenn ich zurück zur vorherigen Aktivität gehe und zurückkomme, kann ich die Änderungen sehen.
Ich möchte die Änderungen angezeigt werden, sobald die SharedPreferences durch Ausführung von Service geändert wird. Was soll ich tun, damit es geschieht?
thanku für schnelle Antwort. Dieser Code funktioniert, wenn die Änderung an dem Objekt vorgenommen wird, das mit 'mySharedPreferences' verknüpft ist. In meinem Service erstelle ich eine neue Instanz von SharedPreferences. Wenn die Änderungen also innerhalb des Dienstes vorgenommen werden, wird 'onSharedPreferenceChanged' in der aktuellen Aktivität nicht aufgerufen! –
Überprüfen Sie hier: [Wie Android Service mit der Aktivität kommunizieren] (http://StackOverflow.com/Questions/2463175/How-Thave-android-Service-Communicate-with-Activity) – flukey
Ich kam mit Ihrem Code aber, das war das Problem http://stackoverflow.com/questions/10150480/registeronsharedpreferencechangelistener-not-working-for-changes-made-in-differe –