Запустить приложение при смене контент-провайдера

Я хочу, чтобы мое приложение запускалось, когда кто-то изменяет поставщика контента. Настройка, если быть точным. Платформа настроек вызывает «уведомление», когда установлено значение.

Если бы мое приложение было запущено, я бы использовал registerContentObserver(), я думаю, но оно не запущено.

Можно определить некоторый фильтр намерений в моем манифесте, который пробуждает мое приложение. Резервный план состоял бы в том, чтобы служба работала все время, зарегистрировав прослушиватель, но это похоже на пустую трату ресурсов.

Спасибо, Ола


person Ola Andersson    schedule 03.06.2010    source источник


Ответы (1)


Это напрямую не поддерживается устройством Android, потому что запуск приложения каждый раз, когда меняются данные ContentProvider, — это путь к тому, чтобы действительно убить вашу батарею. Чтобы выполнить запрос, вам нужно будет сделать это в службе, что, как вы сказали, по понятным причинам нежелательно.

Во-вторых, запуск намерения — это действие пользователя. Android действительно не поддерживает запуск приложения самостоятельно без запроса пользователя... Это было бы невежливо! Что, если ваш пользователь делает что-то важное, а ваше приложение появляется сверху? Помните, что все контролирует пользователь, а не вы. Вместо запуска приложения рассмотрите возможность размещения уведомления в строке состояния, чтобы пользователь может разобраться с этим, когда ему удобно.

person jcwenger    schedule 10.04.2011