Android: Die Methode "onChange ()" von content observer wird mehrmals aufgerufen

8

Ich verwende eine Inhaltsbeobachtung für content://sms . Ich schreibe alle Nachrichten in eine Textdatei auf der SD-Karte. Aber die Methode onChange() im Content Observer wird mehrmals aufgerufen und die gleiche Nachricht wird mehrmals in die Textdatei geschrieben. Wie vermeide ich das? Ich möchte auch wissen, ob der Inhalt Beobachter das Telefon verlangsamen wird.

    
Vivek 17.05.2011, 05:22
quelle

4 Antworten

6

Sie müssen deliverSelfNotifications () überschreiben, um "true" zurückzugeben.

%Vor%     
garmax1 07.06.2011, 06:32
quelle
1

Vivek, bitte stellen Sie sicher, dass Sie Ihre Inhaltsbeobachter abmelden, wenn Sie die Aktivität verlassen, z. in onDestroy() Methode, Aufruf unregisterContentObserver() . Ich hoffe das hilft ! (In meinem Fall hat es funktioniert)

    
Vasu 23.05.2011 09:48
quelle
1

Versuchen Sie dies, um eine mehrfache Ausführung von onChange () zu vermeiden %Vor%     

arjun 25.12.2013 07:50
quelle
0

Das Ereignis onChange () wird einmal für jede Spalte aufgerufen, die sich ändert (d. h. "body" oder "address") - also die mehreren Aufrufe. Die einfachste Möglichkeit, die Daten nur einmal zu verarbeiten, besteht darin, den Wert der Spalte "_id" zu speichern, festzustellen, ob sie sich bei der nächsten Iteration geändert hat, und sie dann zu ignorieren.

%Vor%

Siehe Beispiel hier: Sms ContentObserver onChange () wird mehrmals ausgelöst

    
Lars 11.09.2013 21:21
quelle

Tags und Links