Невозможно получить GeofencingEvent из IntentService при использовании ResultReceiver - PullRequest
0 голосов
/ 29 августа 2018

Я реализовал 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 класс?.

...