百度地图在eclipse上安装的时候可以运行,但退出后再点击就不能运行了

本文详细记录了解决Android应用在DDMS中报createGsmCellLocation错误的过程,该错误与短信服务无关。通过检查生命周期方法、修改application中的terminate方法、在Location类的onDestroy方法中添加退出软件的语句,最终找到了问题原因并成功解决问题。
摘要由CSDN通过智能技术生成

这个原因,不知道为啥,在DDMS中报的错误是:

create GsmCellLocation

,可是我没有用到跟短信相关的服务啊 。

再去看的导入的包,也没发现有类似的包被导入。


也许是有些乱七八糟的服务没被关闭。

就在Loctaton类设置了:

@Override
	protected void onPause() {
		mMapView.onPause();
		super.onPause();
	}

	@Override
	protected void onResume() {
		mMapView.onResume();
		super.onResume();
	}

	@Override
	protected void onDestroy() {
		mMapView.destroy();
		mLocClient.stop();
		super.onDestroy();
	}

	@Override
	protected void onSaveInstanceState(Bundle outState) {
		super.onSaveInstanceState(outState);
		mMapView.onSaveInstanceState(outState);

	}

	@Override
	protected void onRestoreInstanceState(Bundle savedInstanceState) {
		super.onRestoreInstanceState(savedInstanceState);
		mMapView.onRestoreInstanceState(savedInstanceState);
	}

在application中重新写了Onterminate()方法:

	@Override
	public void onTerminate() {
		// TODO Auto-generated method stub
		if (mBMapManager != null) {
			mBMapManager.destroy();
		}
		mBMapManager = null;
		super.onTerminate();
	}
对地图管理器进行了回收。

可惜还是不行,看来不用点极端的方法是不行了。

Location类的Ondestroy()方法中添加了一句代码:

	@Override
	protected void onDestroy() {
		mMapView.destroy();
		mLocClient.stop();
		super.onDestroy();
		System.exit(3);
	}
一运行,还真行了。没报错。。。。。


为啥想到用这个非常狠的退出软件的语句呢??

主要是每次第一次运行的时候能行,可是运行第二次的时候就不能运行了,这个是什么原因呢,不可能是我的key的原因,因为key错误的话,我是不能联网定位到我的位置的,那么就是代码的原因了,为代码在第一次运行良好,为啥在退出再运行就出错呢,这看来就是第一次 的尾巴没清理干净,我试了网上找的,看老版本的sdk的办法后都没法,抱着试试的态度认为是服务的原因,所以才采用这个方法的,没想到还真好使。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值