Уведомление Android: GCM или сервис

100
13

Я хотел бы уведомить пользователя (создать уведомление) всякий раз, когда он получает запрос в приложении.
Я использую базу данных MySQL с PHP - обычный материал.

Всякий раз, когда значение поля user_id_req изменяется от 0 до 1, приложение должно создать уведомление. Я смог сделать это в приложении Начать с NotificationManager и проверять БД, но я хотел бы сделать это в режиме реального времени, то есть как только значение изменится.

Должен ли я использовать GCM для обработки этих запросов или Службы, которая работает в фоновом режиме и каждую минуту проверяет базу данных?

спросил(а) 2021-01-25T22:55:52+03:00 4 месяца, 2 недели назад
1
Решение
133

Вы должны использовать GCM для этого, а не для модели опроса.

Очень плохая практика - делать сетевой запрос каждую минуту - это приведет к значительному использованию батареи. Кроме того, если у вас нет Сервиса, который будет блокировать бодрствование (который действительно убьет батарею), устройство, в конце концов, будет спать, и ваши запросы прекратятся, пока пользователь не разбудит устройство. Другая проблема заключается в том, что, если вы не зарегистрируете свое приложение для пробуждения и запускаете службу при загрузке, ваш опрос остановится всякий раз, когда пользователь перезагрузит свое устройство.

Так получилось, что в большинстве учебных пособий GCM вы также создадите Service. Не позволяйте этому путать вас. Если вы только показываете уведомление пользователю, вам не нужна Service и просто простой BroadcastReceiver будет работать нормально.

ответил(а) 2021-01-25T22:55:52+03:00 4 месяца, 2 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема