У меня есть Activity и несколько удаленных служб, которые должны работать, даже если приложение Android не запущено.
Во-первых, вам не нужны "несколько удаленных сервисов". Самое большее, вам нужно несколько служб, которые не являются удаленными. Удалённость абсолютно не связана с тем, что «должно быть запущено, даже если приложение Android не запущено». Таким образом, вы тратите много памяти, процессора и батареи.
Во-вторых, поскольку ни пользователь, ни ОС не хотят, чтобы «несколько« служб »работали, даже если приложение Android не запущено», попробуйте объединить их в одну службу и использовать эту службу только тогда, когда она активно предоставляет значение для пользователя . Например, наблюдение за тиком часов НЕ активно доставляет значение пользователю - для этого используйте AlarmManager
.
Мне нужны сервисы для прослушивания изменений в SharedPreferences основного Activity (когда он запущен), но как я могу это сделать?
Сделайте так, чтобы они больше не были удаленными службами, затем попросите службы зарегистрировать OnSharedPreferenceChangeListener
с помощью SharedPreferences
, чтобы узнать об изменениях предпочтений.