我创建了一个应用程序,该应用程序具有“地理定位”功能,可以像在其他许多应用程序中一样,在Google地图上查找用户。我使用“LocationManager.NETWORK_PROVIDER”来定位用户,同时我实例化并启动“MyLocationOverlay”(在onLocationChanged()
方法中)以获取位置。由于第二个,GPS打开(在顶部闪烁),这是正常的。关闭应用程序后,GPS更新将不会关闭
问题是,应用程序关闭后(后退按钮或通过任务管理器),GPS功能仍然挂在那里,试图获取更新。
如何在用户离开活动后关闭它?我尝试了来自这里和其他论坛的建议,例如在方法onPause()
,onStop()
,onDestroy()
内放置locationManager.removeUpdates(this);
和locationManager.removeUpdates(mMyLocationOverlay);
。该方法OnPause
看起来是这样的:
@Override
protected void onPause() {
super.onPause();
locationManager.removeUpdates(this);
locationManager.removeUpdates(mMyLocationOverlay);
}
(“本”引用我的类,它实现LocationListener的)
请,有人可以帮助我在离开活动后关闭GPS更新(它的扩展类MapActivity),但不关闭手机本身的GPS功能?
有趣的是,当我用MyLocationOverlay删除部件时,GPS当然不会启动,因此没有问题。所以我很确定mMyLocationOverlay
是“不会停止”并产生问题的听众。
”GPS功能仍然挂在那里,试图获取更新“ - 您是如何确定这一点的? – CommonsWare
通过手机上的GPS指示灯,开始活动时开始闪烁,但用户离开活动时不会停止... – Leonidas
如果通过“手机”指“模拟器”,该图标永远不会消失。 – CommonsWare