我需要让我的应用程序在Android中监听地址簿中的更改。我已经读过可以使用ContentObserver
并在ContactsContract.Contacts
中监听更改来完成。当应用程序关闭时,似乎ContentObserver的生命周期结束。
即使应用程序未打开,如何使ContentObserver正常工作?
答案 0 :(得分:0)
即使未打开应用程序,如何使ContentObserver正常工作?
这是不可能的。 ContentObserver
背后的点是要通知可能影响正在运行的应用的更改,例如需要在显示该数据的活动中反映的数据更改。如果您的应用未投放,则无法使用ContentObserver
。
答案 1 :(得分:0)
使用return START_STICKY;
在OnStartCommand中注册您的内容观察者,而不是在onCreate中注册它。它对我有用。
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
getContentResolver().registerContentObserver(uri,true, new SMSObserver(new Handler(), getBaseContext()));
return START_STICKY;
}