使用parcelables作为Extras的Geofence示例

时间:2016-08-03 07:41:35

标签: android android-geofence

我正在关注https://developer.android.com/training/location/geofencing.html中的示例并使用地理围栏实施应用。

我修改了getGeofencePendingIntent()方法,如下所示:

case MotionEvent.ACTION_UP:

正如您所看到的,与示例的不同之处在于我使用额外内容来传递一些信息,因为我需要它来从通知中启动活动。

问题在于,如果我用parcelable extras取消注释这两行,在GeofenceTransitionsIntentService类的onHandleIntent()方法中我收到-1作为geofenceTransition,如果我让这些行注释,它可以正常工作并接收Geofence.GEOFENCE_TRANSITION_ENTER值。这里发生了什么?我不得不说Intent的额外内容是正确收到的。

    Intent intent = new Intent(getActivity(), GeofenceTransitionsIntentService.class);
    Bundle extras = new Bundle();
    extras.putInt(GeofenceTransitionsIntentService.NTH_EXTRA_FIELD,currentClue);
    extras.putLong(GeofenceTransitionsIntentService.GAME_ID_EXTRA_FIELD,gameId);
    //extras.putParcelableArrayList(GeofenceTransitionsIntentService.ROUTES_EXTRA_FIELD,MainActivity.routes);
    //extras.putParcelable(GeofenceTransitionsIntentService.USER_EXTRA_FIELD, MainActivity.user);
    intent.putExtras(extras);
    return PendingIntent.getService(getActivity(), 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);

谢谢

0 个答案:

没有答案