Использование слушателя после закрытия приложения Android

Я только что читал о добавлении службы в свое приложение, и с 7/8 теперь существуют ограничения на услуги для повышения производительности телефона.

Я видел, что рекомендуемым подходом является использование планировщика заданий, но не будет ли он просто периодически запускать новый прослушиватель, если я это сделаю?

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

Мои проблемы (если я прав) заключаются в том, что постоянное выполнение нового запроса Firestore съедает мое разрешение на запрос.

Кроме того, если это планировщик заданий, он не будет работать в режиме реального времени?

Я читал, что вы можете использовать службу переднего плана, но на самом деле это не похоже на ту задачу, которая требует постоянного уведомления и будет раздражать пользователя.

У кого-нибудь есть какие-либо советы о том, как я это реализую?

Спасибо




Ответы (1)


Использование слушателя после закрытия приложения Android

Вы можете использовать прослушиватель после закрытия приложения Android, не удаляя его. После того, как вы используете прослушиватель, вам также необходимо удалить его в соответствии с жизненным циклом вашей деятельности. Но это будет работать только в течение короткого периода времени, потому что Android остановит ваш сервис, если приложение не будет на переднем плане. Это делается для экономии ресурсов, когда приложение не используется. Это также может помешать вашему приложению работать в сети или даже полностью убить процесс приложения. Вы ничего не можете сделать, чтобы предотвратить это, кроме как сделать его службой переднего плана, как вы уже упоминали.

Служба переднего плана, вероятно, не лучший вариант для вашего случая и не лучший вариант для ваших пользователей. Подробнее об ограничениях фоновых служб.

Я рекомендую использовать Firebase Cloud Messaging, чтобы уведомлять ваше приложение, когда что-то изменилось. это может быть интересно. Таким образом, ваши пользователи получат уведомление, даже если они будут держать свое приложение закрытым.

person Alex Mamo    schedule 23.05.2018
comment
Спасибо Алекс! Это отличная информация. Глядя на облачный обмен сообщениями firebase, он выглядит немного сложным. Похоже, мне придется написать облачную функцию java-скрипта, я думаю? Чего я точно не умею! - person TomH; 24.05.2018
comment
Это не очень сложно, в Интернете есть много руководств. Ура! - person Alex Mamo; 24.05.2018