2010-12-02 78 views

回答

3

從Android,你需要一個內容URI和一些刪除條件刪除內容項目。

每種內容類型都有自己的內容URI。如果您正在編寫聯繫人同步適配器,則可能需要使用ContactsContract.RawContacts.CONTENT_URI。

你需要的其他東西是ContentResolver - 一個與內容提供者通信的接口(一個操作,比如插入,更新和刪除在這個接口中定義)。您可以通過從應用程序上下文中調用getContentResolver來獲得ContentResolver。

所以,這裏的代碼,應該刪除所有聯繫人的片段(沒有測試它雖然):

ContentCesolver cr = getContentResolver(); 
URI uri = RawContacts.CONTENT_URI; 
cr.delete(uri, null, null); 

注意,當你使用RawContacts.CONTENT_URI,聯繫人項目不會被刪除。相反,它只是標記爲刪除。要徹底刪除它,你應該在ContactsContract.CALLER_IS_SYNCADAPTER參數添加到您的URI:

uri.buildUpon() 
    .appendQueryParameter(ContactsContract.CALLER_IS_SYNCADAPTER, 
     "true").build() 

爲了進一步解釋讀official docs about content providers

+0

爲了刪除多個特定的聯繫人(例如給定他們的聯繫人密鑰),可以使用getContentResolver()。applyBatch?或者我應該創建一個有點複雜的刪除操作?什麼更好,或者每個的優點和缺點是什麼? – 2016-01-13 08:15:49