Фоновая служба останавливается через 20 с c после уничтожения приложения в Android 10 java - PullRequest
2 голосов
/ 27 января 2020

У меня есть приложение, которое определяет местоположение в фоновом режиме. В устройствах с android 9 (api 28) или ниже он работает, но в android 10 он останавливается после 20 se c

есть некоторый код

, как я звоню служба

Intent intent = new Intent(getApplicationContext(), GoogleService.class);
startService(intent);

основная деятельность

    @Override
    protected void onResume() {
        super.onResume();
        registerReceiver(broadcastReceiver, new IntentFilter(GoogleService.str_receiver));

    }

    @Override
    protected void onPause() {
        super.onPause();
        registerReceiver(broadcastReceiver, new IntentFilter(GoogleService.str_receiver));
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        registerReceiver(broadcastReceiver, new IntentFilter(GoogleService.str_receiver));
    }

служба Google

    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        return START_STICKY;
    }

    @Override
    public IBinder onBind(Intent intent) {
        return null;
    }

    @Override
    public void onCreate() {
        super.onCreate();

        mTimer = new Timer();
        mTimer.schedule(new TimerTaskToGetLocation(), 5, notify_interval);
        intent = new Intent(str_receiver);
    }

1 Ответ

1 голос
/ 27 января 2020

Как отмечает CommonsWare, запуск фоновой службы, подобной этой, приведет к тому, что система убьет ее после того, как пользователь оставит ваше приложение на более новых версиях Android.

В зависимости от точных характеристик того, как вы пытаясь сделать это, вы должны либо использовать WorkManager (если это откладывается и не требуется больше, чем каждые 15 минут или около того) или службу переднего плана с уведомлением (если вам нужно постоянно запрашивать). См. это руководство из Android документации для получения дополнительной информации о ваших возможностях здесь.

...