Фоновая служба, если она не отображается пользователем, будет всегда убита ранее или позже системой Android. Это способ управления памятью.
Если вам действительно нужно постоянно выполнять сервис, вам необходимо показать постоянное уведомление пользователю (например, при использовании радиоприложения или приложения для музыкального проигрывателя).
Возможно, что-то, что может сделать whatsapp и facebook, - это разбудить приложение удаленно с помощью любых сообщений, таких как Firebase Cloud Messaging (ex-Google Cloud Messaging) или с помощью широковещательного приемника на сертификационных мероприятиях ... Но это, безусловно, не когда-либо на службе.
Прочтите эту часть документации для Android, чтобы лучше понять это: Service Process Lifecycle.
Как вы можете видеть, чтобы отдать приоритет процессу обслуживания, вам необходимо запустить его на переднем плане и передать ему постоянное уведомление с использованием startForeground (int id, Notification notification). Используйте setOngoing (true) в NotificationBuilder для установки уведомления как текущего: setOngoing(boolean b) doc.
Наконец, вы обычно хотите добавить действие в вашем текущем уведомлении (например, контроль игрока или возможность закрыть уведомление и, следовательно, к вашим услугам, когда память будет собираться)
Здесь полный образец коды:
Notification notification = new NotificationCompat.Builder(this)
.setContentTitle(getString(R.string.notification_title))
.setContentText(getString(R.string.notification_text))
.setSmallIcon(R.drawable.ic_small_icon)
.setColor(getResources().getColor(R.color.colorAccent))
.setContentIntent(pendingIntent)
.setOngoing(true)
//.addAction(android.R.drawable.close_service,"Close", closeServiceIntent)
.build();
startForeground(Constants.NOTIFICATION_ID, notification);
Как вы знаете, что у этих приложений есть такая услуга? –
@Tim Casteljins Я заметил, что эти услуги не убиты даже в режиме доз и агрессивных доз. Если они потом, они перезапускаются, и я никогда не пропускал сообщение от WhatsApp, поэтому я думаю, что у них есть хороший способ сохранить его в живых. –
Что заставляет вас думать, что whatsapp использует фоновый сервис для обработки входящих сообщений? –