Я реализовал IntentService
, который получает события для GeoFencing
переходов (вход / выход). Чтобы обновить activity
об этих переходах, я передаю 'ResultReceiver
' в намерении, которое предоставляется PendingIntent
:
intent = new Intent(appContext, GeofenceTransitionsIntentService.class);
intent.putExtra("geofencetransitionlistener",new ResultReceiver(new Handler()) {
@Override
protected void onReceiveResult(int resultCode, Bundle resultData) {
if(resultCode == Geofence.GEOFENCE_TRANSITION_ENTER) {
dataListener.onGeoFenceLocationEnter();
} else if(resultCode == Geofence.GEOFENCE_TRANSITION_EXIT) {
dataListener.onGeoFenceLocationExit();
}
}
});
mGeofencePendingIntent = PendingIntent.getService(context, 0, intent, PendingIntent.
FLAG_UPDATE_CURRENT);
mGeofencingClient.addGeofences(getGeofencingRequest(), getGeofencePendingIntent());//also added success,failure listeners
Когда происходит переход Geofencing
, я НЕ могу правильно получить GeofencingEvent
(получение
код ошибки -1, не возвращается список getTriggeringGeofences ()).
Когда ResultReceiver
НЕ ПРОЙДЕН, GeofencingEvent
работает правильно.
Это как ResultReceiver не работает для GeoFencing, то есть ли альтернативное решение для передачи переходов обратно в activity
класс?.