Как заставить работать ContentObserver, не открывая приложение?
Мне нужно, чтобы мое приложение слушало изменения в адресной книге в Android. Я прочитал, что это можно сделать с помощью ContentObserver
и прислушиваясь к изменениям в ContactsContract.Contacts
, Кажется, что жизненный цикл ContentObserver заканчивается, когда приложение закрывается.
Как заставить работать ContentObserver, даже если приложение не было открыто?
2 ответа
Как заставить работать ContentObserver, даже если приложение не было открыто?
Это невозможно. Точка позади ContentObserver
должен быть уведомлен об изменениях, которые могут повлиять на работающее приложение, таких как изменения в данных, которые должны быть отражены в операции, показывающей эти данные. Если ваше приложение не запущено, вы не можете иметь ContentObserver
,
Зарегистрируйте свой обозреватель контента в OnStartCommand с помощью 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;
}