【发布时间】:2016-10-28 19:17:24
【问题描述】:
我正在寻找一些应用设计建议。
我有一个应用程序可以连接到 Google 定位服务并跟踪它收到的位置坐标。这些在 UI 上显示为路径。
当屏幕超时并变为空白时,Activity 当然会按照正常的 Activity 生命周期关闭。
但是 - 我仍然想记录从位置服务返回的每个 onLocationChanged 事件的坐标,但是当然,Activity 已经暂停,所以它不能这样做。
我并不是特别想阻止 Manifest 中的屏幕空白(因此Activity 永远不会暂停)。虽然我相信如果接到电话等它仍然会暂停。
我的解决方案是在 Activity 暂停事件之一(onPause、onStop 或 onSaveInstanceState)中启动一个 IntentService 以接收位置更新,然后当Activity重启时,从Service中收集数据并关闭Service。
这是实现此目标的一种有效且正确的方法,还是有一些我不知道的 Android 魔法?如果是这样,IntentService 是正确的方法吗(或者我应该使用Service)吗?
【问题讨论】:
标签: android service android-service android-location android-intentservice