Android/Java: как узнать местоположение в фоновой службе, когда приложение не на переднем плане? onLocationResult не зап ⇐ JAVA
Android/Java: как узнать местоположение в фоновой службе, когда приложение не на переднем плане? onLocationResult не зап
Я пытаюсь запросить местоположение с помощью FusedLocationClient, поток запускается хорошо, я вижу Log.d("TAG", "Foreground Service is run"); но проблема в том, что onLocationResult не запускается...
public int onStartCommand(Intent Intent, int flags, int startId) { mustContinueLocationUpdates = правда; если (поток == ноль) { поток = новый поток (новый Runnable () { @Override общественный недействительный запуск () { в то время как (shouldContinueLocationUpdates) { Log.d("TAG", "Служба переднего плана запущена"); FusedLocationClient3 = LocationServices.getFusedLocationProviderClient(getApplicationContext()); locationCallback3 = новый LocationCallback() { @Override public void onLocationResult (LocationResult locationResult) { если (locationResult == null) { возвращаться; } Местоположение местоположения = locationResult.getLastLocation(); если (местоположение!= ноль) { широта = location.getLatitude(); долгота = location.getLongitude(); // Использование широты и долготы ici sendLocationUpdateBroadcast (широта, долгота); } } }; пытаться { Thread.sleep(2000); } catch (InterruptedException e) { е.printStackTrace(); } } } }); поток.start(); } окончательная строка CHANNEL_ID = «Служба переднего плана»; Канал NotificationChannel = новый NotificationChannel (CHANNEL_ID, CHANNEL_ID, NotificationManager.IMPORTANCE_LOW); getSystemService(NotificationManager.class).createNotificationChannel(канал); Уведомление Notification.Builder = новое Notification.Builder(это, CHANNEL_ID) .setContentText("Запущена служба переднего плана") .setContentTitle("Это заголовок"); startForeground(1001, Notification.build()); вернуть super.onStartCommand(намерение, флаги, startId); } Как добиться запуска onLocationResult?
Я пытаюсь запросить местоположение с помощью FusedLocationClient, поток запускается хорошо, я вижу Log.d("TAG", "Foreground Service is run"); но проблема в том, что onLocationResult не запускается...
public int onStartCommand(Intent Intent, int flags, int startId) { mustContinueLocationUpdates = правда; если (поток == ноль) { поток = новый поток (новый Runnable () { @Override общественный недействительный запуск () { в то время как (shouldContinueLocationUpdates) { Log.d("TAG", "Служба переднего плана запущена"); FusedLocationClient3 = LocationServices.getFusedLocationProviderClient(getApplicationContext()); locationCallback3 = новый LocationCallback() { @Override public void onLocationResult (LocationResult locationResult) { если (locationResult == null) { возвращаться; } Местоположение местоположения = locationResult.getLastLocation(); если (местоположение!= ноль) { широта = location.getLatitude(); долгота = location.getLongitude(); // Использование широты и долготы ici sendLocationUpdateBroadcast (широта, долгота); } } }; пытаться { Thread.sleep(2000); } catch (InterruptedException e) { е.printStackTrace(); } } } }); поток.start(); } окончательная строка CHANNEL_ID = «Служба переднего плана»; Канал NotificationChannel = новый NotificationChannel (CHANNEL_ID, CHANNEL_ID, NotificationManager.IMPORTANCE_LOW); getSystemService(NotificationManager.class).createNotificationChannel(канал); Уведомление Notification.Builder = новое Notification.Builder(это, CHANNEL_ID) .setContentText("Запущена служба переднего плана") .setContentTitle("Это заголовок"); startForeground(1001, Notification.build()); вернуть super.onStartCommand(намерение, флаги, startId); } Как добиться запуска onLocationResult?
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение