2017-02-23 108 views
0

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

Теперь я хочу выпустить уведомление на устройстве второго пользователя, когда он был брошен кем-то другим. Я думал, что лучший способ достичь этого - бесконечный фоновой цикл, который проверяет все X минут, есть ли новые открытые поединки на сервере и выдает уведомление, если это так.

Я видел довольно много способов достичь этого, например, использовать Сервис или IntentService, и я действительно не знаю, какой из способов является лучшим. Я не могу использовать JobScheduler, потому что мой minAPI слишком низок.

Прошу прощения, если вы думаете, что на этот вопрос уже был дан ответ, но я не нашел ничего, что соответствовало моим ожиданиям.

Заранее спасибо.

ответ

1

Вы должны использовать FCM (firebase cloud messaging, старое имя - это облачная служба Google), его бесплатный до 5 проектов. Реализация этого очень проста как на стороне клиента, так и на стороне сервера. В вашем приложении у вас будет услуга, когда вы будете получать уведомления, сформируйте эту службу, вы можете отправить свое уведомление на мероприятие через шину событий и показать это уведомление на экране.

+0

Спасибо, я видел это раньше, но я думаю, что это очень продвинуто для того, что я ищу. Мое приложение не предназначено для распространения через любой магазин приложений. Я просто передаю его вручную примерно 20 пользователям. Кроме того, я не использую настоящий сервер приложений, потому что у меня недостаточно прав доступа на сервере, который я использую. В настоящее время я получил php-страницу, которая работает как интерфейс между моим приложением и базой данных mySQL. –

+2

Таким образом, вы можете использовать Alarm или android JobScheduler (только api 21+) и запускать запросы в некоторый период. На бэкэнд вы должны определить некоторую конечную точку для загрузки ожидающих уведомлений. [Здесь] (https://github.com/googlesamples/android-JobScheduler/blob/master/Application/src/main/java/com/example/android/jobscheduler/MainActivity.java) является хорошим примером для JobScheduler –

Смежные вопросы