首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >篱笆未注册-谷歌意识API

篱笆未注册-谷歌意识API
EN

Stack Overflow用户
提问于 2016-07-23 18:05:21
回答 2查看 754关注 0票数 1

我目前正在我的应用程序上注册一个位置围栏,类似于如何在文档上解释它。使用日志,我可以看到注册回调和广播接收器被正确调用。但是,如果我重新运行应用程序,则不会触发这些应用程序。重新启动我的手机后,它又开始工作了。

我不会注销围栏,因为我希望即使在后台也要发射围栏(接收者与活动无关)。

即使我在应用程序开发期间多次运行应用程序,我也如何使它工作呢?如何确保在用户恢复或更新应用程序时正确注册栅栏?

我创建AwarenessFence使用

代码语言:javascript
复制
AwarenessFence allLocations = AwarenessFence.or(locationFences);

其中locationFences是像这样创建的LocationFence对象的集合

代码语言:javascript
复制
singleLocationFence = LocationFence.entering(latitude, longitude, FENCE_RADIUS); 
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-08-23 14:33:09

我已经在服务中完成了栅栏处理,而且由于服务可以在后台运行,所以它运行得很好。如果调用"onDestroy“,我过去会注销这些栅栏,这样操作系统就不再需要观察这些栅栏了。该服务还解决了您的“重新运行”-problem,因为它只能一次服务。

你的下一个观点

代码语言:javascript
复制
AwarenessFence allLocations = AwarenessFence.or(locationFences);

它起作用了,我用TimeFence试了一下

代码语言:javascript
复制
AwarenessFence allLocations = AwarenessFence.or(TimeFence.inInterval(new Date()), Long.MAX_VALUE));

但更好的利用

代码语言:javascript
复制
AwarenessFence allLocations = locationFences;

因为AwarenessFence是所有BeaconFences,Geofence,TimeFencee,(.)的父级形成感知API。

票数 1
EN

Stack Overflow用户

发布于 2017-01-28 00:49:36

我了解到,在您注册使用感知API后,即使您重新运行应用程序,或者如果应用程序处于后台,您也希望收到回调。这个问题并没有澄清这一点,但我相信,如果您正在跟踪文档,您将注册广播接收器动态

您可以通过添加清单文件中类似于这样的内容对广播接收器进行静态注册,从而达到您的目的。

代码语言:javascript
复制
<receiver android:name="MyReceiver">
    <intent-filter>
        <action android:name="android.intent.action.BOOT_COMPLETED">
       </action>
    </intent-filter>
</receiver>

这样,您就不需要在onDestroy()中注销接收方,即使应用程序被停止或更新,如果您注册了围栏,应用程序也会得到围栏回调。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38544966

复制
相关文章

相似问题

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