4

我创建了一个具有“地理定位”功能的应用程序,该功能负责像许多其他应用程序一样在 Google 地图上发现用户。我使用“LocationManager.NETWORK_PROVIDER”来定位用户,同时实例化并启动“MyLocationOverlay”(在onLocationChanged()方法中)以获取位置。由于第二个,GPS 开启(顶部闪烁),这没问题。

问题是,在应用程序关闭后(返回按钮或通过任务管理器),GPS 功能仍然挂在那里,试图获取更新。

用户离开活动后如何关闭它?我尝试了来自此处和其他论坛的建议,例如将方法放入locationManager.removeUpdates(this);和放入locationManager.removeUpdates(mMyLocationOverlay);方法onPause()onStop(),,,onDestroy()。该方法OnPause如下所示:

@Override
protected void onPause() { 
  super.onPause(); 
  locationManager.removeUpdates(this);
  locationManager.removeUpdates(mMyLocationOverlay);
} 

('this' 引用了我的实现 LocationListener 的类)

拜托,有人可以帮我在离开活动后关闭 GPS 更新(这是一个扩展 MapActivity 的类),但不关闭手机本身的 GPS 功能吗?

有趣的是,当我使用 MyLocationOverlay 移除部分时,GPS 当然不会启动,因此没有问题。所以我很确定那mMyLocationOverlay是“不会停止”并产生问题的听众。

4

3 回答 3

2

googleMap.setMyLocationEnabled(false); 在 onPause() 中解决了我的问题。我在 OnCreate() 中将其设置为true 。希望这可以帮助其他人。

于 2014-07-16T11:07:59.847 回答
1

设置LocationListener等于null并重新实例化onResume()

于 2012-06-28T14:38:24.763 回答
1

如果您想关闭(或结束)您可以使用的应用程序

System.exit(0);

所以当应用程序关闭时,您使用的所有服务都会关闭。

于 2012-06-28T14:42:14.340 回答