这个原因,不知道为啥,在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的办法后都没法,抱着试试的态度认为是服务的原因,所以才采用这个方法的,没想到还真好使。