首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >同一地物的多重配准

同一地物的多重配准
EN

Stack Overflow用户
提问于 2014-05-08 18:43:40
回答 1查看 1.2K关注 0票数 2

我想知道,谷歌定位服务如何处理同一地理位置的多重注册?

我曾读到,在以下情况下,NEVER_EXPIRES地理位置将被删除:

  • 重新启动电话
  • 网络位置被打开/关闭

只有在这种情况下。

所以,我在考虑如何克服这种情况,当电话是为前任。无意中重新启动。我想出了在应用程序重新启动时注册地理信息的方法。但是现在,我的问题是,在应用程序重新启动之间,地理位置还没有被移除,会发生什么呢?他们会被替换吗?例如,如果我注册相同的地理位置7x,相关的意图会被发射7倍还是仅仅一次?

谢谢你的建议和纠正!

EN

回答 1

Stack Overflow用户

发布于 2016-03-28 12:22:16

尽管如此,回答为时已晚,以免对某人有帮助:

所以,我在考虑如何克服这种情况,当电话是为前任。无意中重新启动。

您应该使用广播接收器,它将侦听: android.intent.action.BOOT_COMPLETED (处理重新启动)和android.location.PROVIDERS_CHANGED (处理loc打开/关闭)。

我想出了在应用程序重新启动时注册地理信息的方法。

不是的。如上文所述,尝试重新注册广播接收器中的所有地理位置。您可以启动一项服务,以便从上述广播接收器的onReceive重新注册地理位置。

但是现在,我的问题是,在应用程序重新启动之间,地理位置还没有被移除,会发生什么呢?他们会被替换吗?例如,如果我注册相同的地理位置7x,相关的意图会被发射7倍还是仅仅一次?

不管您注册了多少次地理信息,只要您使用相同的requestId,它都将被计算为单个地理位置。例如:

代码语言:javascript
复制
 mGeofenceList.add(new Geofence.Builder()
                // Set the request ID of the geofence. This is a string to identify this geofence.
                .setRequestId(requestId)
                .setCircularRegion(latPos, longPos, mRadius)
                .setExpirationDuration(Geofence.NEVER_EXPIRE)
                .setLoiteringDelay(LOITERING_DELAY)
                .setTransitionTypes(Geofence.GEOFENCE_TRANSITION_DWELL)
                .build()); 
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23550057

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档