背景
項目里接入了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地圖的點擊事件怎么控制?請看這一篇:
百度地圖上點擊跳轉