如果用户杀掉应用程序,Android Geofences会被删除吗?

16
问题在标题中。 如果用户关闭应用程序,新的Android Geofences会被移除吗?
我正在使用新的Android Geofences(在Google IO 2013上宣布)。我无法确定如果用户使用Android任务管理器删除/关闭应用程序,应用程序的Geofences是否会被移除。我认为使用旧的addProximityAlert技术它们不会被删除。

2
为什么会被投票否决?文档没有提供任何指示,说明如果应用程序被终止会发生什么。地理围栏由Google Play服务管理,因此我无法确定应用程序被终止时是否会清除其地理围栏。 - Tim
1
过去几个版本的现行通用规则是,从设置菜单中强制关闭应用程序后,除非再次由用户明确操作启动,否则无法再次运行。因此,允许地理围栏重新启动它似乎是对现有哲学的重大背离。看起来这并不像测试起来太难。 - Chris Stratton
谢谢Chris。那看起来很合理。我稍后会测试一下。我想进行一个真实世界的测试(而不是模拟位置),这意味着需要走动一些并重新检查logcat。 - Tim
3
我刚刚进行了一个基于AlarmManager的测试,我必须不同意Chris的观点。我在我的应用中设置了一个三分钟后的闹钟,在结束应用后,三分钟后我的应用就会显示通知。我敢打赌相同的基本机制也适用于地理围栏。毕竟,你是通过操作系统提供的一个中央服务来注册这些闹钟的。杀死应用程序进程并不会自动删除这些闹钟注册。唯一失去这些闹铃注册的时候是系统重启。因此,您需要在系统启动时重新创建它们。 - tiguchi
3个回答

4

如此处声明

The app must re-register geofences if they're still needed after the following events, since the system cannot recover the geofences in the following cases:

The device is rebooted. The app should listen for the device's boot complete action, and then re- register the geofences required.
The app is uninstalled and re-installed.
The app's data is cleared.
Google Play services data is cleared.
The app has received a GEOFENCE_NOT_AVAILABLE alert. This typically happens after NLP (Android's Network Location Provider) is disabled.

2

根据我的测试结果,这并不是事实。卸载应用程序时,它们会被删除。

谷歌真的需要一个API,让你获取已注册的所有围栏... 这将使事情变得更好。


1
我卸载了我的应用程序,但我的地理围栏没有被注销。只有重新启动才能解决问题。 - Ben L
2
@BenL 你是怎么确保你的地理围栏没有被注销的?这似乎没办法检查啊! - Marian Paździoch
@MarianPaździoch 只需四处走动并观察它们变得活跃 :) - zundi

2

我认为答案是否定的。如果用户关闭应用程序、应用程序崩溃或被任务管理器杀死,注册的地理围栏不会被删除。我知道如果你使用NEVER_EXPIRE标志注册地理围栏,即使应用程序被卸载,地理围栏仍然保持注册状态。

我的理解是,必须到达到期日或注销已注册的地理围栏才能在无需重启手机的情况下将其删除。


谢谢 @Darkcylde,除非有人不同意,否则我很快会将其标记为答案。 - Tim
1
我不同意 - 这个没有在任何地方记录,这只是一个猜测 - 请不要在SO上传播猜测作为答案。 - Marian Paździoch
1
这不是猜测。这是通过尝试每种情况并检查发生了什么来确定的。我没有说过它有记录,我认为措辞清楚地表明我的断言是基于经验的。值得注意的是,这是很久以前在旧版Android上进行的。最新版本可能会有不同的工作方式。 - Darkcylde

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接