Моя проблема в том, что, хотя я запускаю службу переднего плана, я не вижу ее в «запущенных службах» в «параметрах разработчика». Ниже приведены подробности.
Я запускаю Сервис из Действия.
Intent intent = new Intent(this.getContext(), PilotForegroundService.class);
intent.putExtra(CALLSIGN, callsign);
this.getContext().startService(intent);
Внутри onStartCommand
Я установил его на службу переднего плана (вызывая startForeground(...)
и запускаю AsyncTask
, который работает вечно (или пока не будет выполнено условие в AsyncTask
). Код onStartCommand
показано ниже:
public int onStartCommand(Intent intent, int flags, int startId) {
String callsign = intent.getExtras().getString(PilotFragment.CALLSIGN);
startForeground(PilotForegroundAsyncTask.PERSISTENT_ONGOING_NOTIF_ID, getNotification(callsign));
pilotAsyncTask = new PilotForegroundAsyncTask(this);
pilotAsyncTask.execute(callsign);
return Service.START_STICKY;
}
Я могу подтвердить, что AsyncTask
продолжает работать, когда я получаю соответствующую трассировку (периодически выполняйте действие, спите в течение 30 секунд и повторяйте).
У меня вопрос, почему в «Запущенных сервисах» при работе на реальном устройстве - я пробовал на Galaxy S7 Oreo - я не вижу свой сервис в «запущенных сервисах» внутри опций разработчика. Я вижу процесс (даже если я уничтожаю инициирующее действие), но не Службу.
На симуляторе (того же уровня API) он работает нормально в большинстве случаев. Иногда это тоже не показывается.
Я проверил соответствующий вопрос в SO , но я не использую IntentService
. Я расширяю старый добрый Service
.
Заранее спасибо