Android FusedLocationApi.requestLocationUpdates в фоновом режиме: остановка IntentService при завершении работы приложения

Я создаю приложение, которое должно отслеживать местоположение, даже когда приложение находится в фоновом режиме. В основном я использую методы GoogleApiClient и LocationServices.FusedLocationApi.requestLocationUpdates игровых сервисов для вызова IntentService.

следующий код - это то, как я запускаю обновления местоположения в фоновом режиме в своей деятельности:

private void startLocationUpdatesOnBackground() { 

    mLocationRequest = LocationRequest.create()
                .setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY)
                .setInterval(1000)
                .setFastestInterval(1000);

    pendingIntent = PendingIntent.getService(this, 0, 
        new Intent(this, LocationBackgroundService.class), PendingIntent.FLAG_UPDATE_CURRENT); 

    LocationServices.FusedLocationApi.
        requestLocationUpdates(mGoogleApiClient, mLocationRequest, pendingIntent);
}

Это прекрасно работает.
Однако, когда приложение завершается пользователем (через диспетчер задач), я хочу остановить этот IntentService (называемый LocationBackgroundService). Как это сделать?


person BeFree    schedule 03.02.2016    source источник


Ответы (1)


Пытаться:

LocationServices.FusedLocationApi.removeLocationUpdates(mGoogleApiClient, this);

http://developer.android.com/intl/es/training/location/receive-location-updates.html#stop-updates

person Uriel Golab    schedule 12.04.2016
comment
Спасибо. Это был бы правильный звонок, но откуда я должен позвонить? Есть ли обратный вызов жизненного цикла для его вызова в Activity/Application/IntentService, когда приложение завершается? - person BeFree; 14.04.2016
comment
это зависит от того, где вы хотели остановить это. Зацепите кнопку, сервис onDestroy или куда хотите. - person Uriel Golab; 14.04.2016
comment
Я до сих пор не совсем понимаю, извините... Итак, вариант использования такой: пользователь запускает приложение, в первой активности я запускаю обновления местоположения в фоновом режиме. Когда пользователь нажимает левую кнопку Android и уничтожает процесс, есть ли у меня для этого обратный вызов? Что-то вроде Application.onDestroy? Потому что именно тогда я хотел бы удалитьLocationUpdates - в противном случае обновления местоположения продолжают работать, даже если пользователь полностью удалил приложение... - person BeFree; 15.04.2016
comment
Я не эксперт в Android-разработке, но я думаю, что вам следует прекратить получать данные о местоположении в том же действии, которое их запрашивало. - person Uriel Golab; 15.04.2016