Смутно, FusedLocationProviderApi прекращает отправку намерений.Почему активность GoogleApiClient ActivityRecognitionApi Android по-прежнему отправляет PendingIntents после того, как экземплярная служба была убита?
Немного подробней: У меня есть служба Android, которая создает GoogleApiClient.
mClient = new GoogleApiClient.Builder(this)
.addApi(LocationServices.API)
.addApi(ActivityRecognition.API)
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this)
.build();
mClient.connect();
После подключения, я запросить обновления местоположения с помощью:
// Set up periodic location updates
Intent locationIntent = new Intent(this, LocationReceiver.class);
mLocationPendingIntent = PendingIntent.getBroadcast(
this,
0,
locationIntent,
PendingIntent.FLAG_UPDATE_CURRENT);
mFusedLocationProviderApi.requestLocationUpdates(
mClient,
mLocationRequest,
mLocationPendingIntent);
И я прошу деятельности, обнаруженные с помощью:
// Set up activity recognition
Intent activityRecognizedIntent = new Intent(
this,
ActivityRecognizedReceiver.class);
mActivityRecognizedPendingIntent = PendingIntent.getBroadcast(
this,
0,
activityRecognizedIntent,
PendingIntent.FLAG_UPDATE_CURRENT);
mActivityRecognitionApi.requestActivityUpdates(
mClient,
ACTIVITY_DETECTION_INTERVAL,
mActivityRecognizedPendingIntent);
Когда служба погибают от операционной системы, например, когда я нажмите новую версию приложения на свой телефон, ActivityRecognizedReceiver продолжает получать обновления! Как я могу остановить это? Почему LocationReceiver останавливает, получая обновления?
Там нет OnPause или onResume методы в сфере услуг. –
Использование Служб для неограниченной возможности исполнения, если вы не остановите его сами, тогда он будет продолжать работать. Вы можете остановить его, используя stopself или restervice. –
Найдите точку в своем коде, где будет удобно останавливать службу. –