Однако некоторые услуги будут пропущены пользователем, если онитаинственно исчезаютНапример, приложение музыкального проигрывателя по умолчанию, которое поставляется с Android, использует службу для фактического воспроизведения музыки.Таким образом, пользователь может слушать музыку, продолжая использовать свой телефон для других целей.Служба останавливается только тогда, когда пользователь заходит и нажимает кнопку остановки в музыкальном проигрывателе.Если эта служба неожиданно будет закрыта, пользователь может задаться вопросом, что не так.
Такие службы могут объявить себя частью «переднего плана».Это приведет к повышению их приоритета и уменьшит вероятность их выбивания из памяти.Компромисс заключается в том, что сервис должен поддерживать Notification
, поэтому пользователь знает, что этот сервис претендует на часть переднего плана.И, в идеале, Notification
обеспечивает легкий путь назад к некоторой деятельности, где пользователь может остановить службу.
Для этого в onCreate()
вашей службы (или где-либо еще в жизни службы этобудет иметь смысл), позвоните startForeground()
.Это займет Notification
и локально уникальное целое число, точно так же, как метод notify()
в NotificationManager
.Это заставляет Notification
появляться и перемещает сервис в приоритет переднего плана.Позже вы можете позвонить stopForeground()
, чтобы вернуться к обычному приоритету.