像其他许多人一样,我希望有一个退出按钮,当用户离开应用程序时,它会关闭GPS,以节省电池寿命。许多讨论基本上是说这不能做,但我有一个应用程序可以做到,所以继续尝试并找到一种方法。该应用程序的开发人员告诉我,他在自己编写的一个服务中运行内部GPS,他的退出键会终止该服务,然后vola,GPS指示器会立即熄灭。
我的应用程序对时间非常敏感,我想使用现在使用系统服务的LocationListener部分时使用的onLocationChanged等效项,但将系统服务放在我编写的服务中,这样我就可以杀死它。
我的问题是,我是否可以将系统GPS服务放在本地服务中,而不增加任何显着的延迟,而不必轮询本地服务以获取更新。这是我的第一个Android应用程序,虽然我已经写了大量的C和PHP代码,但这是一个新领域,有点奇怪。
发布于 2012-07-13 01:03:48
像许多其他人一样,我想有一个退出按钮,可以关闭
你不能“关掉GPS”。你可以告诉Android你的应用程序不再需要GPS (例如,你不再需要GPS更新)。然后,Android将决定是否关闭GPS无线电,这取决于目前可能正在尝试使用GPS的其他设备。
当用户离开应用程序以节省电池寿命时使用
。
为此,您不需要按钮。简单的应用程序,其中只有一个活动需要全球定位系统访问,可以简单地在onResume()
中请求位置更新,并在onPause()
中删除它们。更复杂的应用程序可能会在需要位置更新的第一个onResume()
上请求位置更新,然后在onUserLeaveHint()
中删除这些更新,或者执行恢复/暂停操作的引用计数来确定何时删除更新。
在某些情况下,您可能真的希望用户通过单击一个按钮来明确地说“停止使用GPS”,但如果您可以避免这种情况,请这样做。
该应用程序的开发人员
告诉我,他在自己编写的一个服务中运行内部GPS,他的退出键会终止该服务,而vola,GPS指示器立即熄灭。
开发人员需要以某种方式确定何时启动和停止此服务。而不是启动和停止服务,他们可以请求和删除位置更新,并具有相同的效果,同时消耗更少的堆空间,并使用户不太可能使用任务杀手和强制停止按钮攻击您。
IMHO,使用位置更新服务的唯一原因是因为你特别想在没有活动的情况下在后台使用位置信息。
https://stackoverflow.com/questions/11456296
复制相似问题