Служба Alternate to Foreground для непрерывного обновления местоположения - PullRequest
0 голосов
/ 06 февраля 2019

Я работал над приложением, в котором мы должны отслеживать местоположение пользователя каждую минуту, поэтому мы будем поддерживать режим отслеживания в реальном времени на нашем сервере.

Я реализовал то же самое, используя службу Foreground, и она отлично работает с большинством устройств, но для таких устройств, как OPPO и VIVO (в которых служба останавливается через несколько раз).Независимо от того, как сильно я пытаюсь перезапустить службу, используя широковещательный приемник или с помощью диспетчера аварийных сигналов каждые 15 минут, и запускать службу, если она не работает. Но служба продолжает останавливаться и никогда не перезапускается.Ниже приведен код для этого:

public class HomeLocationService extends Service {

 @Override
 public int onStartCommand(Intent intent, int flags, int startId) {
                startForeground(NOTIFICATION_ID, getNotification());
    // Method to location request and sending it to server.
    return START_STICKY;
 }

 @Override
 public void onDestroy() {
   Intent intent = new Intent("com.android.restartservice");
   sendBroadcast(intent);
 }

 @Override
 public void onTaskRemoved(Intent rootIntent) {
    Intent intent = new Intent(getApplicationContext(), HomeLocationService.class);
    PendingIntent pendingIntent = PendingIntent.getService(this, 1, intent, PendingIntent.FLAG_ONE_SHOT);
    AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
    if (alarmManager != null) {
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
            alarmManager.setAndAllowWhileIdle(AlarmManager.RTC_WAKEUP, SystemClock.elapsedRealtime() + 5000, pendingIntent);
        } else {
            alarmManager.set(AlarmManager.RTC_WAKEUP, SystemClock.elapsedRealtime() + 5000, pendingIntent);
        }
    }
    super.onTaskRemoved(rootIntent);
 }
}

Интересно, существует ли какой-либо альтернативный способ обновления местоположения на сервере, кроме служб и планировщика заданий (который может работать только с интервалом в 15 минут)?Пожалуйста, помогите мне с вашими ценными предложениями.Заранее спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...