0
我正在開發一個手機2.2的應用程序。我已經能夠從https://github.com/Red-Folder/Cordova-Plugin-BackgroundService實施後臺服務。從android設備上的後臺服務中收聽聯繫人數據庫中的chages
現在我想要能夠偵聽聯繫人數據庫中的更改,以便在檢測到更改時,函數可以在後臺服務(Java方法)中運行。 這是如何實現的。
我正在開發一個手機2.2的應用程序。我已經能夠從https://github.com/Red-Folder/Cordova-Plugin-BackgroundService實施後臺服務。從android設備上的後臺服務中收聽聯繫人數據庫中的chages
現在我想要能夠偵聽聯繫人數據庫中的更改,以便在檢測到更改時,函數可以在後臺服務(Java方法)中運行。 這是如何實現的。
您必須在您的服務中創建一個內容觀察者,並註冊該觀察者以偵聽聯繫人數據庫中的更改。 下面是聯繫人內容觀察者的例子:
ContactsContentObserver contentObserver = new ContactsContentObserver();
private class ContactsContentObserver extends ContentObserver
{
public ContactsContentObserver()
{
super(null);
}
@Override
public void onChange(boolean selfChange)
{
super.onChange(selfChange);
// handle change received
}
}
您可以註冊服務在onStart()方法的內容觀察者:
getContentResolver().registerContentObserver (ContactsContract.Contacts.CONTENT_URI, true, contentObserver);
而且在服務的onDestroy註銷它()方法:
getContentResolver().unregisterContentObserver(contentObserver);
希望它有幫助。
是否也可以通過將內容URI更改爲'Uri.parse(「content:// icc/adn」)' – Udo
@阿科斯我喜歡你的解決方案,但服務將一直在運行,因此內容觀察者也將始終如一。所以觀察員不註銷。這會導致任何問題 –