我需要让我的应用程序监听 Android 中地址簿的变化。我读过它可以使用ContentObserver
和监听ContactsContract.Contacts
. 似乎 ContentObserver 的生命周期在应用程序关闭时结束。
即使未打开应用程序,如何使 ContentObserver 工作?
我需要让我的应用程序监听 Android 中地址簿的变化。我读过它可以使用ContentObserver
和监听ContactsContract.Contacts
. 似乎 ContentObserver 的生命周期在应用程序关闭时结束。
即使未打开应用程序,如何使 ContentObserver 工作?
即使未打开应用程序,如何使 ContentObserver 工作?
这是不可能的。a 背后的要点ContentObserver
是通知可能影响正在运行的应用程序的更改,例如需要反映在显示该数据的活动中的数据更改。如果您的应用程序未运行,则不能拥有ContentObserver
.
在 OnStartCommand 中注册您的 Content Observer,return START_STICKY;
而不是在 onCreate 中注册它。这个对我有用。
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
getContentResolver().registerContentObserver(uri,true, new SMSObserver(new Handler(), getBaseContext()));
return START_STICKY;
}