如何将GPS系统服务放在本地服务中,以便可以关闭GPS以关闭GPS

时间:2012-07-12 16:24:00

标签: android gps

与其他许多人一样,我希望有一个退出按钮,当用户离开应用程序以关闭GPS时可以延长电池寿命。许多讨论基本上都说这不能做,但我有一个应用程序,所以继续尝试找到一种方法。该应用程序的开发人员告诉我,他在他写的服务中运行内部GPS,并且他的退出键杀死了该服务并且挥发,GPS指示器立即熄灭。

我的应用程序对时间非常敏感,我想在使用系统服务的LocationListener部分时使用我现在使用的onLocationChanged,但在我写的服务中有系统服务,以便我可以杀死它。 / p>

我的问题是,我是否可以将系统GPS服务放在本地服务中,而不会增加任何显着的延迟,而我不必轮询本地服务以获取更新。关于我如何做到这一点的任何帮助都会很有意思,因为这是我的第一个Android应用程序,虽然我已经写了大量的C和PHP代码,但这是一个新的领域,有点奇怪。

1 个答案:

答案 0 :(得分:1)

  

像许多其他人一样,我想要一个关闭GPS的退出按钮

你无法“关闭GPS”。您可以告诉Android 您的应用不再需要GPS(例如,您不再需要GPS更新)。 Android 将决定是否关闭GPS无线电,具体取决于此刻可能尝试使用GPS的其他内容。

  

当用户离开应用程序以延长电池寿命时。

您不需要按钮。只有一项活动需要GPS访问权限的简单应用可以在onResume()中简单地请求位置更新,并在onPause()中将其删除。更复杂的应用可能会在需要它们的第一个onResume()上请求位置更新,然后在onUserLeaveHint()中删除这些更新,或者执行恢复/暂停操作的引用计数以确定何时删除更新。

在某些情况下,您确实希望用户必须通过点击按钮明确说“停止使用GPS”,但如果您可以避免,请执行此操作。

  

该应用程序的开发人员告诉我,他在他写的服务中运行内部GPS,并且他的退出键杀死了该服务并且挥发,GPS指示灯立即熄灭。

开发人员需要确定何时启动和停止此服务。他们不是启动和停止服务,而是可以请求和删除位置更新,并具有相同的效果,同时消耗更少的堆空间,并降低用户使用任务杀手和强制停止按钮攻击您的可能性。

恕我直言,使用位置更新服务的唯一原因是因为您特别希望在后台使用位置信息而不进行任何活动。