Ich habe derzeit eine App geschrieben, die den Inhalt beobachtet: // SMS-URI für alle Änderungen an der Datenbank. Mein Beobachter wird erfolgreich ausgelöst, wenn einzelne Nachrichten hinzugefügt oder entfernt werden. Es wird jedoch keine Benachrichtigung ausgelöst, wenn ein gesamter Thread auf einmal gelöscht wird. Gibt es eine Möglichkeit, dieses Ereignis auszulösen? Oder vielleicht gibt es einen anderen Inhaltsanbieter, den ich beobachten sollte?Android: Beobachten SMS für gelöschte Threads
Uri URI = Uri.parse("content://sms");
String[] columns = {"_id", "date"};
Cursor c = getContentResolver().query(URI, columns, "type=?", new String[]{"1"}, "_id DESC");
Observer observer = new Observer();
c.registerContentObserver(observer);
Und meine Beobachter Klasse:
private class Observer extends ContentObserver {
public Observer() {
super(null);
}
@Override
public void onChange(boolean selfChange) {
super.onChange(selfChange);
if (!selfChange) {
// do stuff
// never called when a thread is deleted
}
}
}
Update: Ich habe versucht, Möglichkeiten zu finden, um dieses Problem zu umgehen, z. B. Neudefinitionen der IDs, die ich brauche, wenn neue Nachrichten eingehen, aber nichts hat sich als erfolgreich erwiesen. Mein Beobachter muss signalisiert werden, wenn ein Thread gelöscht wird. Weiß jemand, was das Problem ist? Oder gibt es eine andere Möglichkeit, auf gelöschte Threads zu hören? – mattprecious
Kann meine Anwendung wissen, welche SMS gelöscht wird? Ich meine seinen Inhalt. Weil ich diese gelöschte Nachricht speichern muss? Danke .... –
Nicht, dass ich weiß. Wenn Sie die Datenbank beobachten, werden Sie erst nach dem Löschen der Nachricht benachrichtigt, sodass Sie keine Informationen abrufen können. – mattprecious