我刚刚完成了 Android 上的地理围栏教程(http://developer.android.com/training/location/geofencing.html http://developer.android.com/training/location/geofencing.html),我想知道为什么地理围栏的“回调”是通过挂起的意图而不是简单的回调接口来完成的。
如果在活动中实现,通常会在以下位置断开位置客户端的连接:onPause()
无论如何,因此在应用程序暂停/被销毁后,之前添加的地理围栏也不会被跟踪,那么为什么要挂起意图呢?或者我在这里弄错了?
我想知道为什么地理围栏的“回调”是通过挂起的意图而不是简单的回调接口来完成的。
主要是因为地理围栏的设计即使在您的应用程序不运行的情况下也能工作。
如果在活动中实现,通常会在 onPause() 中断开位置客户端的连接,因此在应用程序暂停/被销毁后,之前添加的地理围栏也不会被跟踪,那么为什么要挂起意图呢?或者我在这里弄错了?
我相信你在这里错了。事实上,地理围栏并不是专为直接触发 UI 而设计的,如文档 http://developer.android.com/training/location/geofencing.html:
从位置服务发送的 Intent 可以触发应用程序中的各种操作,但您不应该让它启动 Activity 或片段,因为组件只能在响应用户操作时变得可见。
现在,您可能会选择只在前台进行活动时才使用地理围栏。但是,您必须删除这些地理围栏onPause()
。地理围栏将保持注册状态直至其过期或手动删除(AFAICT)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)