Android,位置服务在后台

时间:2015-06-06 08:24:30

标签: android google-api location

关于这个话题有很多线索,我已经阅读过谷歌的文档和其他内容但是我还不清楚如何获得位置更新,永久

我需要什么:知道用户现在在哪里(意思是:范围5-10分钟)所以每 5-10 分钟,如果有' sa位置更新,我需要将新位置存储在数据库中,即使主应用程序未运行。

到目前为止,我已经做了一个永无止境的服务,每隔5-10分钟就要求最后一个位置,但这个(轮询)显然不是很好。

Google最新的Receiving Location Updates文档显示了如何在MainActivity中执行此操作,仅此而已。

Google建议的IntentService" 按需处理异步请求(表示为Intents)"所以它似乎不是一个合适的候选人。

任何形式的帮助都将受到赞赏。

1 个答案:

答案 0 :(得分:0)

我的主要问题是" 如何在启动后启动服务"所以我已经通过以下方式解决了问题:

  • 使用LocationListener创建了一个服务。它回来了 来自onStartCommand方法的Service.START_REDELIVER_INTENT
  • 创建了一个BroadcastReceiver,它在启动后启动服务
  • 清单中的
  • ,将android:installLocation="auto"移至 android:installLocation="internalOnly"制作BroadcastReceiver 工作 (doc

但是,如果用户从设置(Force close)关闭应用程序,该服务将停止工作,但这是用户想要的,没有问题。