При сворачивании приложение не ищет gps

Я делаю приложение для Android, которое включает карту Google. При сворачивании приложение больше не ищет GPS. Есть ли способ постоянно включать gps для приложения, даже когда карта свернута?

Для непрерывного определения местоположения по GPS используйте класс обслуживания. Посмотрите на это решение. Если вы хотите, чтобы приложение запускалось после закрытия приложения. запустите службу постоянно, в противном случае завершите службу в onTaskRemoved(Intent rootIntent) внутри класса службы с помощью метода stopSelf().

Chethan Kumar 26.10.2018 08:18

Похоже, это сработает, я собираюсь применить это и вернусь к вам с ответом

Sudipta Patra 26.10.2018 08:23
0
2
211
1

Ответы 1

@Sudipta для предыдущей версии Oreo, вы должны использовать планировщик заданий.

  1. Create a JobScheduler class
    @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
public class JobSchedulerClass extends JobService {

    @Override
    public boolean onStartJob(JobParameters params) {
        return false;
    }

    @Override
    public boolean onStopJob(JobParameters params) {

        Intent startService = new Intent(this, YourServiceClass.class);
        ContextCompat.startForegroundService(this, startService);
        return false;
    }

}
  1. Call the service class and service class based the the version of device running
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
        JobScheduler jobScheduler = (JobScheduler) context.getSystemService(Context.JOB_SCHEDULER_SERVICE);
        JobInfo jobInfo = new JobInfo.Builder(11, new ComponentName(context, JobSchedulerClass.class))
                .setRequiresBatteryNotLow(false)
                .setMinimumLatency(100)
                .setRequiredNetworkType(JobInfo.NETWORK_TYPE_NONE)
                .build();
        assert jobScheduler != null;
        jobScheduler.schedule(jobInfo);
    } else {
        Intent startService = new Intent(context, YourServiceClass.class);
        context.startService(startService);
    }

Извините, на данный момент я использовал свои локальные имена классов в проекте. замените MainActivity.class на свой класс обслуживания .... обновил пост. пожалуйста, проверьте сейчас

Chethan Kumar 26.10.2018 10:10

Другие вопросы по теме