Ric*_*ell 6 android-location android-geofence
我有一个几乎不需要用户交互的应用程序,但需要Geofences.我可以在后台服务中完全运行吗?
首次运行服务时会有一个Activity.此Activity将启动一个服务并为BOOT_COMPLETED注册一个BroadcastReceiver,因此该服务将在启动时启动.此活动不太可能再次运行.
该服务将设置警报定期关闭,这将导致IntentService从网络下载位置列表.然后,此IntentService将围绕这些位置设置Geofences,并创建PendingIntents,这些PendingIntents将在接近位置时触发.反过来,那些PendingIntents将导致另一个IntentService采取一些行动.
所有这些都需要在后台进行,除了在安装后第一次启动Activity之外没有用户交互.因此,Activity不会与LocationClient或任何位置服务进行交互.
我实际上已经使用proximityAlerts设置了这个设置,但是出于电池寿命的原因,我希望转向新的Geofencing API.但是,我听说在服务中使用LocationClient可能会有一些问题.具体来说,我听到了(抱歉,没有参考,只是传闻声称):
当我调查时,我看不出有什么理由会这样,或者为什么它会阻止我做我想做的事情.我希望它几乎可以替代proximityAlerts ...
任何人都可以对这里的事情有所了解吗?
最好的办法就是尝试一下,对吧?你的策略看起来不错。
when called from background thread, LocationClient.connect() assumes that it is called from main ui thread (or other thread with event looper), so connection callback is never called, if we call this method from service running in background thread.
Run Code Online (Sandbox Code Playgroud)
我知道这不是真的。我有一个从 Activity 启动的服务,并调用连接回调。
我不知道接近警报;但我似乎找不到 API 来列出我的地理围栏。我担心我的数据库(sqlite)和实际的围栏可能会不同步。我认为这是一个设计缺陷。
LocationClient 需要 UI 的原因是设备可能没有安装 Google Play 服务。谷歌设计了一种狡猾而复杂的机制,允许您的应用程序提示用户下载它。在我看来,整件事是可怕的、可怕的。这都是“假设假设”编程。
(他们为 google IO 2013 匆忙推出了很多东西。并非所有内容都有详细记录,其中一些似乎有点“粗糙”)。
| 归档时间: |
|
| 查看次数: |
2728 次 |
| 最近记录: |