关闭申请后,GPS更新不会关闭

时间:2012-06-28 14:06:45

标签: android gps updates geo

我创建了一个具有“地理位置”功能的应用程序,该功能负责像许多其他应用程序一样在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是“不会停止”并产生问题的听众。

3 个答案:

答案 0 :(得分:2)

onPause()中的

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

答案 1 :(得分:1)

LocationListener设为null并重新实例化onResume()

答案 2 :(得分:1)

如果要关闭(或结束)应用程序,可以使用

System.exit(0);

因此,当应用程序关闭时,您使用的所有服务都将关闭。