2010-12-13 4 views
0

ich diesen Inhalt Beobachter haben, die auf dem Anrufprotokoll beobachtet:Bestimmen Sie die ContentObserver

public class monitorCallLog extends ContentObserver{ 
    private static final String TAG = "monitorCallLog"; 
    public monitorCallLog(Handler handler) { 
     super(handler); 
     // TODO Auto-generated constructor stub 
    } 
    @Override 
    public boolean deliverSelfNotifications() { 
     return false; 
    } 
    @Override 
    public void onChange(boolean selfChange){ 
     Log.v(TAG, "[onChange] *** ENTER ***"); 
     super.onChange(selfChange); 
     // Code goes in here to handle the job of tracking.... 
     Log.v(TAG, "[onChange] *** LEAVE ***"); 
    } 
} 

Nun ... wie kann ich die Art der Änderung auf dieser URI bestimmen content://call_log/calls?

Ich möchte überprüfen, ob eine Löschung auf der genannten URI aufgetreten ist ... aber es gibt keine Möglichkeit zu wissen ... dies scheint auf eine Abfrage anzuwenden/löschen/einfügen/aktualisieren auf der URI, die auslöst die onChange Methode ....

irgendwelche Tipps/Vorschläge?

Antwort

0

Haben Sie versucht, einen Beobachter für jeden Anruf Uris zu registrieren?

Wenn Sie 5 Anrufe im Anrufprotokoll haben, registrieren Sie einen Inhaltsbeobachter für jeden Anruf Uri, wobei der Beobachter möglicherweise mit der ID des beobachteten Anrufs initialisiert wird.

Auf diese Weise wird beim Löschen/Aktualisieren eines einzelnen Anrufs die Löschmethode des Inhaltsanbieters eine Benachrichtigung senden, die dem einzelnen Anruf und nicht allen Anrufen entspricht.

Ich denke, das ist ein nicht standardmäßiger Ansatz für Listen von einem Cursor. Ich glaube, dass die meisten Anwendungen der Inhaltsbeobachtungder Cursor ist.