[6.2.0] fix handler thread of map cost
This commit is contained in:
@@ -5,10 +5,7 @@ import android.graphics.Bitmap
|
||||
import android.graphics.Point
|
||||
import android.opengl.GLException
|
||||
import android.opengl.GLSurfaceView
|
||||
import android.os.Build
|
||||
import android.os.Handler
|
||||
import android.os.Looper
|
||||
import android.os.Message
|
||||
import android.os.*
|
||||
import android.text.TextUtils
|
||||
import android.util.Log
|
||||
import android.view.GestureDetector
|
||||
@@ -145,45 +142,82 @@ class MapView(context: Context, private val mMapStyleParams: IMapStyleParams, pr
|
||||
// 耗时专用协程
|
||||
private val mDemaningScope: CoroutineScope = CoroutineScope(SupervisorJob() + Dispatchers.IO)
|
||||
|
||||
|
||||
private val mHandler: Handler = object : Handler(Looper.getMainLooper()) {
|
||||
override fun handleMessage(msg: Message) {
|
||||
when (msg.what) {
|
||||
ZOOM_CHANGE -> mMapController?.dispatchZoomChanged()
|
||||
ROTATE_CHANGE ->mMapController?.dispatchRotationAngleChanged((msg.obj as Float))
|
||||
DAngle_CHANGE -> mMapController?.dispatchDAngleChanged()
|
||||
FOCUS_CHANGE -> mMapController?.dispatchFocusChanged()
|
||||
RENDER_CHANGE -> {
|
||||
mEventController?.dispatchRenderListener(msg.arg1)
|
||||
}
|
||||
RENDER_COMPLETE -> {
|
||||
if (DEBUG) {
|
||||
Log.i(TAG, "mapop--load render complete-start")
|
||||
private var mHandler:Handler
|
||||
init {
|
||||
val mapViewThread = HandlerThread("mapViewDrawer")
|
||||
mapViewThread.start()
|
||||
mHandler = object : Handler(mapViewThread.looper) {
|
||||
override fun handleMessage(msg: Message) {
|
||||
when (msg.what) {
|
||||
ZOOM_CHANGE -> mMapController?.dispatchZoomChanged()
|
||||
// ROTATE_CHANGE ->mMapController?.dispatchRotationAngleChanged((msg.obj as Float))
|
||||
// DAngle_CHANGE -> mMapController?.dispatchDAngleChanged()
|
||||
// FOCUS_CHANGE -> mMapController?.dispatchFocusChanged()
|
||||
RENDER_CHANGE -> {
|
||||
mEventController?.dispatchRenderListener(msg.arg1)
|
||||
}
|
||||
RENDER_COMPLETE -> {
|
||||
if (DEBUG) {
|
||||
Log.i(TAG, "mapop--load render complete-start")
|
||||
}
|
||||
// CommonEventController.instance?.dispatchCameraChangeFinishListener(CommonController.instance.mapAutoView?.getMapAutoViewHelper()?.getCameraPosition() ?: null)
|
||||
if (DEBUG) {
|
||||
Log.i(TAG, "mapop--load render complete-end")
|
||||
if (DEBUG) {
|
||||
Log.i(TAG, "mapop--load render complete-end")
|
||||
}
|
||||
}
|
||||
}
|
||||
LOAD_COMPLETE -> {
|
||||
if (DEBUG) {
|
||||
Log.i(TAG, "mapop--load complete-start")
|
||||
LOAD_COMPLETE -> {
|
||||
if (DEBUG) {
|
||||
Log.i(TAG, "mapop--load complete-start")
|
||||
}
|
||||
mEventController?.dispatchMapLoadedListener()
|
||||
}
|
||||
mEventController?.dispatchMapLoadedListener()
|
||||
}
|
||||
|
||||
INIT_COMPLETE -> {
|
||||
if (DEBUG) {
|
||||
Log.i(TAG, "mapop--init complete-start")
|
||||
INIT_COMPLETE -> {
|
||||
if (DEBUG) {
|
||||
Log.i(TAG, "mapop--init complete-start")
|
||||
}
|
||||
mEventController?.dispatchMapLoadedInitListener()
|
||||
}
|
||||
mEventController?.dispatchMapLoadedInitListener()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
// private val Hndler: Handler = object : Handler(Looper.getMainLooper()) {
|
||||
// override fun handleMessage(msg: Message) {
|
||||
// when (msg.what) {
|
||||
// ZOOM_CHANGE -> mMapController?.dispatchZoomChanged()
|
||||
// ROTATE_CHANGE ->mMapController?.dispatchRotationAngleChanged((msg.obj as Float))
|
||||
// DAngle_CHANGE -> mMapController?.dispatchDAngleChanged()
|
||||
// FOCUS_CHANGE -> mMapController?.dispatchFocusChanged()
|
||||
// RENDER_CHANGE -> {
|
||||
// mEventController?.dispatchRenderListener(msg.arg1)
|
||||
// }
|
||||
// RENDER_COMPLETE -> {
|
||||
// if (DEBUG) {
|
||||
// Log.i(TAG, "mapop--load render complete-start")
|
||||
// }
|
||||
//// CommonEventController.instance?.dispatchCameraChangeFinishListener(CommonController.instance.mapAutoView?.getMapAutoViewHelper()?.getCameraPosition() ?: null)
|
||||
// if (DEBUG) {
|
||||
// Log.i(TAG, "mapop--load render complete-end")
|
||||
// }
|
||||
// }
|
||||
// LOAD_COMPLETE -> {
|
||||
// if (DEBUG) {
|
||||
// Log.i(TAG, "mapop--load complete-start")
|
||||
// }
|
||||
// mEventController?.dispatchMapLoadedListener()
|
||||
// }
|
||||
//
|
||||
// INIT_COMPLETE -> {
|
||||
// if (DEBUG) {
|
||||
// Log.i(TAG, "mapop--init complete-start")
|
||||
// }
|
||||
// mEventController?.dispatchMapLoadedInitListener()
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
override fun getMapEngine(): MapEngine {
|
||||
return mMapEngine
|
||||
@@ -1149,10 +1183,10 @@ class MapView(context: Context, private val mMapStyleParams: IMapStyleParams, pr
|
||||
}
|
||||
|
||||
fun onMapFocusChanging() {
|
||||
if (DEBUG) {
|
||||
Log.i(TAG, "mapop--onMapFocusChanging")
|
||||
}
|
||||
mHandler.sendEmptyMessage(FOCUS_CHANGE)
|
||||
// if (DEBUG) {
|
||||
// Log.i(TAG, "mapop--onMapFocusChanging")
|
||||
// }
|
||||
// mHandler.sendEmptyMessage(FOCUS_CHANGE)
|
||||
}
|
||||
|
||||
fun onMapZoomChanging() {
|
||||
@@ -1163,20 +1197,20 @@ class MapView(context: Context, private val mMapStyleParams: IMapStyleParams, pr
|
||||
}
|
||||
|
||||
fun onMapRAngleChanging(angle:Float) {
|
||||
if (DEBUG) {
|
||||
Log.i(TAG, "mapop--onMapRAngleChanging")
|
||||
}
|
||||
val msg = Message.obtain()
|
||||
msg.what = ROTATE_CHANGE
|
||||
msg.obj = angle
|
||||
mHandler.sendMessage(msg)
|
||||
// if (DEBUG) {
|
||||
// Log.i(TAG, "mapop--onMapRAngleChanging")
|
||||
// }
|
||||
// val msg = Message.obtain()
|
||||
// msg.what = ROTATE_CHANGE
|
||||
// msg.obj = angle
|
||||
// mHandler.sendMessage(msg)
|
||||
}
|
||||
|
||||
fun onMapDAngleChanging() {
|
||||
if (DEBUG) {
|
||||
Log.i(TAG, "mapop--onMapDAngleChanging")
|
||||
}
|
||||
mHandler.sendEmptyMessage(DAngle_CHANGE)
|
||||
// if (DEBUG) {
|
||||
// Log.i(TAG, "mapop--onMapDAngleChanging")
|
||||
// }
|
||||
// mHandler.sendEmptyMessage(DAngle_CHANGE)
|
||||
}
|
||||
|
||||
override fun loadP(
|
||||
|
||||
@@ -66,8 +66,10 @@ class MapController(private var context: Context?, private val mMapView: IMapVie
|
||||
private var mMapPerspective = MAP_PERSPECTIVE_2D
|
||||
private var isFollowCarMode = true
|
||||
private var isMapNorth = false
|
||||
@Volatile
|
||||
private var lastZoom = 16
|
||||
private var lonLat: LonLat? = null
|
||||
@Volatile
|
||||
private var isSetMapStyle = false
|
||||
private var mRoamDis = ConstantExt.ROAM_DIS_1KM
|
||||
private var mSpeed = ConstantExt.ROAM_SPEED_30
|
||||
@@ -829,6 +831,7 @@ class MapController(private var context: Context?, private val mMapView: IMapVie
|
||||
mMapView.getMapEngine().setRotateAngle(rotation)
|
||||
}
|
||||
|
||||
@Volatile
|
||||
var mMapStyleMode = 0
|
||||
|
||||
//设置地图风格
|
||||
|
||||
@@ -56,6 +56,7 @@ class MapStyleParams: IMapStyleParams {
|
||||
* const val MAP_STYLE_DAY_NAV = 3 //日间导航模式
|
||||
* const val MAP_STYLE_NIGHT_NAV = 4 //夜间导航模式
|
||||
*/
|
||||
@Volatile
|
||||
private var styleMode: Int = MapAutoApi.MAP_STYLE_NIGHT_VR
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user