我创建了一个具有“地理位置”功能的应用程序,该功能负责像许多其他应用程序一样在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
是“不会停止”并产生问题的听众。
答案 0 :(得分:2)
googleMap.setMyLocationEnabled(false); 解决了我的问题。我在OnCreate()中将其设置为 true 。希望这可以帮助别人。
答案 1 :(得分:1)
将LocationListener
设为null
并重新实例化onResume()
答案 2 :(得分:1)
如果要关闭(或结束)应用程序,可以使用
System.exit(0);
因此,当应用程序关闭时,您使用的所有服务都将关闭。