Лучшее место/способ регистрации и отмены регистрации для contentObserver

У меня есть вариант использования, когда мне нужно зарегистрироваться для наблюдателя контента в моем приложении для Android. Я хочу слушать прямо с запуска приложения и до его закрытия, но мое приложение содержит много действий, где лучше всего регистрироваться и отменять регистрацию для наблюдателя?

Если я сделаю это в onResume и onPause моей базовой активности, регистрация и отмена регистрации будут происходить часто (поскольку действия также меняются во время действий пользователя), есть ли лучшее место для регистрации и отмены регистрации?

Спасибо, Риши.


person user7365614    schedule 07.01.2017    source источник


Ответы (1)


Если вы хотите делать что-то в нескольких действиях, используйте службу. Пусть каждое действие запустит службу (если она уже запущена, это не приведет к запуску секунды) и зарегистрирует ее. Если вам нужен доступ к данным от этого наблюдателя, используйте Binder для определения API и привязки к службе.

person Gabe Sechan    schedule 07.01.2017
comment
Спасибо за ответ. В contentObserver есть обратный вызов, который я хочу использовать, нет таких данных, которые я хотел бы получить от службы, если они есть. Однако как создание сервиса поможет решить проблему? Мне нужно что-то, что начинает наблюдать сразу после запуска приложения и останавливается после его уничтожения. - person user7365614; 08.01.2017
comment
Запущенная служба существует до тех пор, пока не будет остановлена. Это означает, что он продолжает существовать, даже если одно действие остановлено, а другое запущено. Его цель — выполнять задачи, которые необходимы независимо от того, какая активность запущена, или выполнять задачи, результаты которых нужны нескольким действиям в вашем приложении. Вы также можете рассмотреть возможность использования JobScheduler для планирования службы JobService для преобразователя контента. - person Gabe Sechan; 08.01.2017
comment
Я вижу, что касается JobScheduler: у меня может быть просто статическая утилита для запуска метода (в основном, метода без состояния), когда я когда-либо получаю обратный вызов onChange от наблюдателя контента. Какое дополнение/преимущество может добавить JobScheduler здесь? - person user7365614; 08.01.2017