2

我試圖維護一個聯繫人數據庫,並在URI發生某些變化時立即獲取添加/更新/刪除的回調。檢測一個Android聯繫人是否已被刪除

我寫了一個ContentObserver來觀察ContactsContract.Contacts.CONTENT_URI的聯繫人。一旦聯繫人發生變化,我就會收到回覆,然後通過檢查ContactsContract.Contacts.CONTACT_LAST_UPDATED_TIMESTAMP來更新我的數據庫。 雖然這對於添加/更新工作正常,但確實不適用於刪除聯繫人

我不想解析我在內存中的所有聯繫人並檢查android數據庫。這需要時間和CPU。

我知道存在這些類型的許多問題,但我無法弄清楚具體刪除聯繫人的事情。

是否存在執行此操作的方法?

+0

具有u找到任何解決辦法呢,我正在經歷同樣的 – user3475052

+0

@ user3475052:Android提供「ContactsContract.DeletedContacts.CONTENT_URI」原料藥18以上。您可以使用此內容Uri的時間戳記來跟蹤已刪除的聯繫人。這比通過Contacts.Content_uri跟蹤聯繫快得多。 – ShReYaNsH

+0

嘿shreyansh你可以解釋更多一點 – user3475052

回答

0

正如我在上面的評論中發佈的,以下代碼適用於API級別18及以上。 您可以在uri ContactsContract.DeletedContacts.CONTENT_URI上查詢以獲取所有已刪除聯繫人的列表。

我的查詢看起來如下:

String selection = ContactsContract.DeletedContacts.CONTACT_DELETED_TIMESTAMP + " > ?"; 
    String[] selectionArgs = new String[]{String.valueOf(mLastContactDeleteTime)}; 
    Cursor cursor = mContext.getContentResolver().query(ContactsContract.DeletedContacts.CONTENT_URI, null, selection, selectionArgs, null);