2013-10-28 269 views
0

我正在开发一个基于位置的android应用程序,它需要在后台连续检索位置。基于位置的android应用程序

  • 我正在使用LocationManager来获取位置更新。
  • 我写了一个实现LocationListener并检索位置更新的服务。
  • 有一个选项可供用户打开/关闭通知。如果通知关闭,我在应用程序进入后台时调用stopService(),否则服务将继续运行,并且不会调用mLocManager.removeUpdates()。

这意味着如果用户保持通知,服务将继续请求位置更新。我现在最担心的是电池漏电。我知道我必须停止在某个时候请求更新,但我的应用需要在后台连续接收位置信息。任何人都可以告诉我,当我使用NETWORK_PROVIDER并以5分钟的间隔请求更新时,平均电池位置更新可能会消耗多少?

也应该使用LocationClient而不是LocationManager来提高性能?或者如果我继续使用LocationManager,这样可以。

如果有人能够向我提供关于如何有效地接收位置更新的建议,这将持续需要位置数据,那真是太好了。

+0

看看他下面的链接http://stackoverflow.com/a/14478281/1292203 –

+0

我已经使用服务来检索背景中的位置。但我需要在后台持续接收位置更新,所以我不打电话给stopService(),我知道这不是一个好习惯,并且会耗尽电池电量。是否有任何有效的方式在不消耗电池的情况下在后台持续接收位置更新? – Raeesaa

+1

如果有人能够建议我一种有效的方式来请求连续更新,并且电量消耗更少,那真的太棒了。 – Raeesaa

回答

0

您必须记住LocationClient是Google Play服务的一部分,因此它仅适用于平台包含Google Play商店的设备。某些设备可能正在使用Android的非标准版本,并且您无法访问LocationClient。

+0

是的,我知道这一点。这就是我使用LocationManager的原因。我现在最担心的是电池消耗,据我所知LocationClient使用的功率比LocationManager低,这就是我计划切换到LocationClient的原因。 – Raeesaa

+0

位置管理器是在Android SDK中引入的,可以用作android的一个功能。 位置客户端是Google Play SDK的一部分,并在最近的Google IO 2013中引入。 人们可以理解,由于位置客户端是最新版本,因此在以最小的能量(电池消耗)获取位置方面效率更高,精度更高。 –

0

请求位置更新,就是好的。但是,如果您将其与GPS_PROVIDER进行比较,则位置的准确性会降低,但再次gps需要更多的功率。作为我昨天的个人经历,我的GPS每隔10秒就会持续3小时跟踪我的位置,在那段时间我使用Nexus 4的电池电量消耗为20%。如果可以接受,您可以自己选择回来你还是不是。

但正如其他人所说,使用FusedLocation Provider即LocationClient是精度与电池耗尽问题的最佳选择。

+0

谢谢你的回答。我仍然对使用什么感到困惑。在得出结论之前,必须与少数人讨论。 – Raeesaa

+1

是的..这是做事情的最佳方式..问开发者他们喜欢什么以及他们喜欢什么。你会学到很多东西。 – d3m0li5h3r

相关问题