1
我正在使用Google Geofence API的Android应用程序。 我的代码似乎在应用程序处于前景时正常工作,但只要应用程序移至暂停状态,地理栅栏广播接收器就会停止接收事件。 我非常确定,当应用移动到背景时,地理栅栏会被删除,但我不知道为什么会发生这种情况。Android地理栅栏在应用程序未运行时停止工作
Breafly,我创建地理围栏
Geofence geofence = new Geofence.Builder()
.setRequestId(id)
.setCircularRegion(lat, lng, GEOFENCE_RADIUS)
.setExpirationDuration(Geofence.NEVER_EXPIRE)
.setTransitionTypes(Geofence.GEOFENCE_TRANSITION_DWELL)
.setLoiteringDelay(1000)
.build();
geofences.add(geofence);
的名单,然后我创建了一个请求
geofenceRequest = new GeofencingRequest.Builder()
.setInitialTrigger(GeofencingRequest.INITIAL_TRIGGER_DWELL)
.addGeofences(geofences)
.build();
在这一点上,我添加了地理围栏
LocationServices.GeofencingApi.addGeofences(googleApiClient, request, createGeofencePendingIntent()).setResultCallback(this);
最后我开始广播接收机
String GEOFENCE_ACTION = "gac.broadcast.geofence";
if (geoFencePendingIntent != null)
{
GoogleApiClientManager.setGeofencePendingIntent(geoFencePendingIntent);
return geoFencePendingIntent;
}
Intent intent = new Intent(GEOFENCE_ACTION);
PendingIntent pendingIntent = PendingIntent.getBroadcast(getActivity(), GEOFENCE_REQ_CODE, intent, PendingIntent.FLAG_UPDATE_CURRENT);
GoogleApiClientManager.setGeofencePendingIntent(pendingIntent);
return pendingIntent;
正如我已经说过的,在前台运行时,一切工作都很完美,但只要应用移动到后台,geofence事件就会停止发送给接收方。
附加INFOS(广播接收器的问题不相关): 我试图做到以下几点:
- 我开始在地图片段和地理围栏工作正常,因此应用程序显示一个通知
- 我移动到主屏幕,所以应用程序移动到暂停状态,并且不再收到通知
- 我回到应用程序检查位置更新和谷歌API客户端仍在工作,他们实际上工作
- 最后地理围栏无法正常工作
希望一切都很清楚,并且您的某个人可以帮助我。 在此先感谢
你确定它在后台工作吗?因为我遇到了同样的问题,所以在应用程序处于前台状态时工作良好,但当应用程序在后台运行时,我没有收到任何通知。而且我已经使用Context和Receiver类设置了这个意图。 –