Android Geofences是否在删除/过期之前保持活动状态,或者直到我的PendingIntent启动为止

cop*_*lii 8 android geofencing google-play-services android-geofence location-client

我即将实现地理围栏的功能,在我完成任何认真的工作之前,我需要知道在第一次转换后地理围栏是否仍然有效.

该功能的核心是:

每次我在点P的x米范围内(称之为区域A),我都希望动作B出现.

我需要知道的是

  • 我是否只需要添加一个地理围栏,Geofence.NEVER_EXPIRE并确保每次进入指定区域都会获得PendingIntent,无论是否经过时间,重新启动等等

要么

  • 我退出A区后是否必须重新注册此地理围栏以便在下次进入A区时收到通知?

我希望前者是这样的

Mar*_*ere 9

好的主张是第一个.如果使用标记NEVER_EXPIRE作为到期时间创建地理围栏,则在触发(通过进入或退出)时不必重新注册它.我100%肯定这一点,我现在刚刚完成编码和测试关于地理围栏的POC.

从文档中,删除地理围栏的唯一方法是达到到期时间或者设备本身将其删除.

到期时间

地理围栏应保持多长时间.达到到期时间后,位置服务将删除地理围栏.大多数情况下,您应指定到期时间,但您可能希望为用户的家或工作地点保留永久地理围栏.

要停止地理围栏监控,请自行删除地理围栏


小智 6

请记住,即使在用户卸载应用程序后,NEVER_EXPIRE也会导致地理围栏注册,以防应用程序卸载它们.没有办法删除这些.永远.所以他们会继续耗尽电池.因此,建议设置过期时间并再次设置地理围栏,以防它们在您希望它们到期之前到期.

  • @hajons是在文档中的某个地方吗?你怎么知道这些围栏即使在卸载后仍然保留? (8认同)
  • 一个非常有效的观点,但我想知道为什么它以这种方式实现.如果卸载了应用程序X,我们肯定知道没有任何东西可用于为PendingIntent提供服务.我想知道这是不是一个错误...它看起来确实如此......一旦你从你的设备上卸下我的应用程序,我的手机上就没有剩余的业务了. (3认同)
  • 这似乎不是真的,因为 [documentation](https://developer.android.com/training/location/geofencing.html) 说你必须在卸载应用程序时重新注册地理围栏并重新注册安装。如果它们在不需要的卸载过程中保留。 (2认同)