Как заставить работать 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;    
} 
Другие вопросы по тегам