Android Service needs to run always (Never pause or stop)
Служба Android должна запускаться всегда (никогда не приостанавливаться и не останавливаться)
Я создал службу и хочу запускать эту службу всегда, пока мой телефон не перезагрузится или не будет принудительно закрыт. Служба должна работать в фоновом режиме.
Возможно ли запускать эту службу всегда, когда приложение приостанавливается и что-либо еще. Через некоторое время мое приложение приостанавливается, и службы также приостанавливаются или останавливаются. Итак, как я могу запускать эту службу в фоновом режиме и всегда.
Переведено автоматически
Ответ 1
"Возможно ли запускать эту службу всегда, как при приостановке приложения, так и при чем-либо еще?"
ДА.
В методе service onStartCommand возвращается START_STICKY .
publicintonStartCommand(Intent intent, int flags, int startId) { return START_STICKY; }
Запустите службу в фоновом режиме с помощью startService (MyService), чтобы она всегда оставалась активной, независимо от количества привязанных клиентов.
Для вашей службы может потребоваться уведомление о запуске соответствующего действия после ее закрытия.
privatevoidaddNotification() { // create the notification Notification.Builderm_notificationBuilder=newNotification.Builder(this) .setContentTitle(getText(R.string.service_name)) .setContentText(getResources().getText(R.string.service_status_monitor)) .setSmallIcon(R.drawable.notification_small_icon);
// create the pending intent and add to the notification Intentintent=newIntent(this, MyService.class); PendingIntentpendingIntent= PendingIntent.getActivity(this, 0, intent, 0); m_notificationBuilder.setContentIntent(pendingIntent);
// send the notification m_notificationManager.notify(NOTIFICATION_ID, m_notificationBuilder.build()); }
Вам необходимо изменить манифест, чтобы запустить действие в режиме single top.
android:launchMode="singleTop"
Обратите внимание, что если системе нужны ресурсы, а ваша служба не очень активна, она может быть отключена. Если это неприемлемо, выведите службу на передний план с помощью startForeground .