2017-02-01 18 views
1

Я использую SignalR для отправки уведомлений моему клиенту android. Для этого я использую Intent Service. Проблема в том, что когда я удаляю приложение из последних приложений, служба останавливается. Это происходит потому, что IntentService работает не постоянно, но работает на базе Intent.Intent Service для push-уведомлений в android от SignalR

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

Заранее благодарен!

ответ

1

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

Для выполнения своей задачи вам необходимо сделать сервис липкой возврата START_STICKY onStartCommand службы. и в доке, он упоминается, если процесс будет убит система обновит снова

если процесс этого сервиса будет убит в то время как он был запущен (после возвращения из onStartCommand (Intent, Int, Int)), а затем оставить его в началось состояние, но не сохраняют это поставленное намерение. Позже система попытается воссоздать сервис. Поскольку он находится в начальном состоянии, будет гарантировать вызов onStartCommand (Intent, int, int) после , создавая новый экземпляр службы; если нет ожидающих запуска команд , которые должны быть доставлены в службу, он будет вызываться с нулевым объектом , поэтому вы должны позаботиться об этом.