Я знаю, что есть так много вопросов об этом. Я пробовал большинство из них и провел там столько времени. но не получает никакого решениядиспетчер аварийной сигнализации/приемник услуг/вещания не работает после того, как приложение закрыто или удалено от последнего приложения.
На самом деле, я хочу, фоновый процесс для запуска на бесконечное время, даже приложение удаляется из недавнего приложения я хочу взять GPS местоположение пользователя повторно через 15 мин
так первый я имел пытался со следующими
TRY 1 ****** Я создал приемник вещания, который будет вызывать мое обслуживание названия этого вещательного приемника LocationServiceRestarter Я инициирование тревоги ретранслятора, который будет вызывать LocationServiceRestarter при регулярном интервале 5 секунд
Intent intent = new Intent("com.lmf.overduereport.gpstimer.LocationServiceRestarter");
intent.addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES);
PendingIntent pendingIntent = PendingIntent.getBroadcast(getApplicationContext(),
0, intent, PendingIntent.FLAG_CANCEL_CURRENT);
AlarmManager am =
(AlarmManager)getSystemService(Activity.ALARM_SERVICE);
alarm_manager.setRepeating(AlarmManager.RTC_WAKEUP,SystemClock.elapsedRealtime()+5*1000,5*1000,pendingIntent);
это работает отлично, если я не удалить приложение из недавних приложений я добавил журнал внутри радиовещательного приемника, который записывает журнал в мою папку о том, если вещательный приемник называется или нет. в этом случае сам широковещательный приемник не вызывается из диспетчера аварийных сообщений, тогда он, очевидно, не будет вызывать услугу, которую я хочу вызвать для записи местоположения.
TRY 2 ****** Я также пробовал услуги, которые могут работать бесконечно. но он также перестает работать после того, как приложение закрывается
TRY 3 ****** На этот раз я не буду называть повторяющуюся менеджер тревоги вместо того, что я сделал следующее
Intent intent = new Intent("com.lmf.overduereport.gpstimer.LocationServiceRestarter");
intent.addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES);
PendingIntent pendingIntent = PendingIntent.getBroadcast(getApplicationContext(),
0, intent, PendingIntent.FLAG_CANCEL_CURRENT);
AlarmManager am =
(AlarmManager)getSystemService(Activity.ALARM_SERVICE);
//--
am.set(AlarmManager.ELAPSED_REALTIME_WAKEUP,
SystemClock.elapsedRealtime() + 5000, pendingIntent);
выше будет вызывать широковещательный приемник и радиовещательный приемник я добавил менеджер сигнализации следующий
LocationServiceM.appendLog("Got Reciever******");
intent = new Intent("com.lmf.overduereport.gpstimer.LocationServiceRestarter");
intent.addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES);
PendingIntent pendingIntent = PendingIntent.getBroadcast(context,
12345, intent, PendingIntent.FLAG_CANCEL_CURRENT);
AlarmManager am =
(AlarmManager) context.getSystemService(Activity.ALARM_SERVICE);
am.set(AlarmManager.ELAPSED_REALTIME_WAKEUP,
SystemClock.elapsedRealtime() + 5000, pendingIntent);
выше будет возобновляют широковещательный приемник с новым временем графика, так цепь будет продолжаться.
но грустно это тоже не работает. он отлично работает, если приложение не удаляется из последнего приложения.
Даже я пробовал то же самое выше, что и сервис и намерение службы, не повезло.
Заключение: диспетчер аварийных сигналов или широковещательный приемник не вызывается после того, как приложение удалено из последнего приложения.
но я видел много приложений, которые запускаются в фоновом режиме, даже приложение закрыто из последнего приложения.
Какое устройство и/или какую версию Android вы тестирование на. –
Samsung galaxy j5 Prime. android version 6.0.1 и Panasonic P81 android version 4.2.2 .. –