Я работаю над приложением, которое должно взаимодействовать с сервером каждые несколько минут, пока приложение выключено, чтобы проверить, есть ли новые сообщения для него. Если новое сообщение недоступно, должно отображаться уведомление.
А пока придерживайтесь этого рабочего процесса: приложение запускает фоновую службу. Служба при запуске подключается к серверу для проверки сообщений, затем настраивает AlarmManager на активацию той же службы через несколько минут, а затем служба останавливается сама. И так далее.
Удалось реализовать что-то подобное, но не уверен, что это лучший путь.