背景
项目里接入了Baidu地图SDK,用于展示信息、选点。
在一个新的Activity
中,引入了TextureMapView
,用于地图展示。
选点过程有两个页面。
A页面中有一个不能滑动的地图,只是用来展示,没有其他任何操作。
点击A页面中的地图,进入全屏的地图页(B),进行选点,选好点之后,跳回到A,并回传选好的点。
页面A:区域展示选择的地图位置
页面B:用于选择位置
在A跳转B,整个过程执行3次之后,再回到A时,地图变蓝,再跳转到 B,B页面的地图也变蓝。
执行过程:
A页面, 点地图,跳转到B,选点,返回。
再执行上一步。
共执行3次。
调用BaiduMap的生命周期处理
override fun onPause() {
mapView?.onPause()
super.onPause()
}
override fun onResume() {
super.onResume()
mapView?.onResume()
}
override fun onDestroy() {
mapView?.onDestroy()
super.onDestroy()
}
override fun onDetachedFromWindow() {
mapView?.onDestroy()
super.onDetachedFromWindow()
}
问题原因
百度地图的销毁,必须要一次创建,对应一次销毁,不能调用onDestroy
多次。
上一个代码中,由于代码错误,在onDetachedFromWindow
中又调用了一次销毁onDestroy
。
补充
在使用Baidu地图SDK时,想控制整个Baidu地图的点击事件怎么控制?请看这一篇:
百度地图上点击跳转