解决“locationManager.removeUpdates()关闭不了gps定位”的方法

转载请注明出处,谢谢http://blog.csdn.net/harryweasley/article/details/41575731

最近做一个gps项目的中途,遇到了一个问题,我调用locationManager.removeUpdates(listener)这个方法后,本以为gps定位就会停止,但是并没有停止gps定位功能,gps信号栏里的还是继续在闪烁,之后就各种百度,也找不到正确的解决方法,然后又去翻墙继续谷歌,最终找到了解决方法,在此记录一下,帮助那些因为这个问题困惑的人。

首先,让我们复习一下正确关闭gps的三个步骤:

第一个步骤:

移除LocationListener

第二个步骤:

将LocationManager置为null

第三个步骤:

将LocationListener置为null


下面是正确关闭gps的代码,名字是由你自己定的

if(_locationManager != null){
 
    _locationManager.removeUpdates(<span style="font-family: Arial, Helvetica, sans-serif;">_locationListener</span>);
 
 
    _locationManager = null;
 
}
 
if(_locationListener != null) {
 
    _locationListener = null;
 
}
如果这些步骤不起作用,你的gps信号还是在闪烁的话,下面有潜在的两个问题来解决:

第一个原因:这个是最常见,也是最令人沮丧的原因了。你可能有意或无意的实例化了多个LocationManager。最简单的避免这个错误的方法是,将实例LocationManager这个代码放在onResume()事件里面,同时在onPause()方法中关闭它。仔细的控制被你打开的LocationManager并及时关闭它。当你在不同的Activity之间LocationManager,你一定要留心。如果LocationManager正在运行,你又实例化了一个,那么你将不能够如愿用代码关闭它,你就只能通过手动来关闭它。

第二个原因:可能是你手机上的其他的APP已导致这个LocationManager运行中,那么很显然,它将不会通过你的app来关闭,多次检查已消除这个可能性,确保你已经关闭其他所有的可能用到gps定位的APP。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值