[6.7.0][HDMap][Overlay] 优化地图marker的处理逻辑;当地图控件从窗口中移除时,断开Java层与Marker之间的引用,规避内存泄露
This commit is contained in:
@@ -234,12 +234,6 @@ public class BusPassengerRouteFragment extends
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onDestroyView() {
|
public void onDestroyView() {
|
||||||
IMoGoOverlayManager overlayManager = CallerMapUIServiceManager.INSTANCE.getOverlayManager();
|
|
||||||
if(overlayManager!=null) {
|
|
||||||
overlayManager.removeAllLines();
|
|
||||||
overlayManager.removeAllPoints();
|
|
||||||
}
|
|
||||||
|
|
||||||
super.onDestroyView();
|
super.onDestroyView();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -65,10 +65,6 @@ class PM2HPMapFragment :
|
|||||||
|
|
||||||
override fun onDestroyView() {
|
override fun onDestroyView() {
|
||||||
mapBizView.onDestroy()
|
mapBizView.onDestroy()
|
||||||
CallerMapUIServiceManager.getOverlayManager()?.let {
|
|
||||||
it.removeAllLines()
|
|
||||||
it.removeAllPoints()
|
|
||||||
}
|
|
||||||
super.onDestroyView()
|
super.onDestroyView()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -112,10 +112,6 @@ class DriverM1Fragment : CharterBaseFragment<DriverM1Fragment?, DriverM1Presente
|
|||||||
if (mPresenter != null) {
|
if (mPresenter != null) {
|
||||||
mPresenter?.onDestroy(this)
|
mPresenter?.onDestroy(this)
|
||||||
}
|
}
|
||||||
CallerMapUIServiceManager.getOverlayManager()?.let {
|
|
||||||
it.removeAllLines()
|
|
||||||
it.removeAllPoints()
|
|
||||||
}
|
|
||||||
super.onDestroyView()
|
super.onDestroyView()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -266,10 +266,6 @@ class MainFragment : MvpFragment<MainFragment?, BusPassengerPresenter?>(), IMogo
|
|||||||
override fun onDestroyView() {
|
override fun onDestroyView() {
|
||||||
mapBizView.onDestroy()
|
mapBizView.onDestroy()
|
||||||
omvOverMap.onDestroy()
|
omvOverMap.onDestroy()
|
||||||
CallerMapUIServiceManager.getOverlayManager()?.let {
|
|
||||||
it.removeAllLines()
|
|
||||||
it.removeAllPoints()
|
|
||||||
}
|
|
||||||
MogoMapListenerHandler.mogoMapListenerHandler.unregisterHostMapListener(TAG)
|
MogoMapListenerHandler.mogoMapListenerHandler.unregisterHostMapListener(TAG)
|
||||||
EventBus.getDefault().unregister(this)
|
EventBus.getDefault().unregister(this)
|
||||||
if (mPresenter != null) {
|
if (mPresenter != null) {
|
||||||
|
|||||||
@@ -89,11 +89,6 @@ public class ShuttleFragment extends BaseShuttleTabFragment<ShuttleFragment, Bus
|
|||||||
if (mPresenter != null) {
|
if (mPresenter != null) {
|
||||||
mPresenter.onDestroy(this);
|
mPresenter.onDestroy(this);
|
||||||
}
|
}
|
||||||
IMoGoOverlayManager overlayManager = CallerMapUIServiceManager.INSTANCE.getOverlayManager();
|
|
||||||
if(overlayManager!=null) {
|
|
||||||
overlayManager.removeAllLines();
|
|
||||||
overlayManager.removeAllPoints();
|
|
||||||
}
|
|
||||||
super.onDestroyView();
|
super.onDestroyView();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -145,11 +145,6 @@ public class BusPassengerRouteFragment extends
|
|||||||
if (mPresenter != null) {
|
if (mPresenter != null) {
|
||||||
mPresenter.onDestroy(this);
|
mPresenter.onDestroy(this);
|
||||||
}
|
}
|
||||||
IMoGoOverlayManager overlayManager = CallerMapUIServiceManager.INSTANCE.getOverlayManager();
|
|
||||||
if(overlayManager!=null) {
|
|
||||||
overlayManager.removeAllLines();
|
|
||||||
overlayManager.removeAllPoints();
|
|
||||||
}
|
|
||||||
super.onDestroyView();
|
super.onDestroyView();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -64,10 +64,6 @@ class PM2HPMapFragment :
|
|||||||
|
|
||||||
override fun onDestroyView() {
|
override fun onDestroyView() {
|
||||||
mapBizView.onDestroy()
|
mapBizView.onDestroy()
|
||||||
CallerMapUIServiceManager.getOverlayManager()?.let {
|
|
||||||
it.removeAllLines()
|
|
||||||
it.removeAllPoints()
|
|
||||||
}
|
|
||||||
super.onDestroyView()
|
super.onDestroyView()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -145,11 +145,6 @@ public class BusPassengerRouteFragment extends
|
|||||||
if (mPresenter != null) {
|
if (mPresenter != null) {
|
||||||
mPresenter.onDestroy(this);
|
mPresenter.onDestroy(this);
|
||||||
}
|
}
|
||||||
IMoGoOverlayManager overlayManager = CallerMapUIServiceManager.INSTANCE.getOverlayManager();
|
|
||||||
if(overlayManager!=null) {
|
|
||||||
overlayManager.removeAllLines();
|
|
||||||
overlayManager.removeAllPoints();
|
|
||||||
}
|
|
||||||
super.onDestroyView();
|
super.onDestroyView();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -64,10 +64,6 @@ class PM2HPMapFragment :
|
|||||||
|
|
||||||
override fun onDestroyView() {
|
override fun onDestroyView() {
|
||||||
mapBizView.onDestroy()
|
mapBizView.onDestroy()
|
||||||
CallerMapUIServiceManager.getOverlayManager()?.let {
|
|
||||||
it.removeAllLines()
|
|
||||||
it.removeAllPoints()
|
|
||||||
}
|
|
||||||
super.onDestroyView()
|
super.onDestroyView()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -155,11 +155,6 @@ public class TaxiFragment extends BaseTaxiTabFragment<TaxiFragment, TaxiPresente
|
|||||||
if (mPresenter != null) {
|
if (mPresenter != null) {
|
||||||
mPresenter.onDestroy(this);
|
mPresenter.onDestroy(this);
|
||||||
}
|
}
|
||||||
IMoGoOverlayManager overlayManager = CallerMapUIServiceManager.INSTANCE.getOverlayManager();
|
|
||||||
if(overlayManager!=null) {
|
|
||||||
overlayManager.removeAllLines();
|
|
||||||
overlayManager.removeAllPoints();
|
|
||||||
}
|
|
||||||
super.onDestroyView();
|
super.onDestroyView();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -229,10 +229,6 @@ class TaxiPassengerBaseFragment() :
|
|||||||
if (mPresenter != null) {
|
if (mPresenter != null) {
|
||||||
mPresenter?.onDestroy(this)
|
mPresenter?.onDestroy(this)
|
||||||
}
|
}
|
||||||
CallerMapUIServiceManager.getOverlayManager()?.let {
|
|
||||||
it.removeAllLines()
|
|
||||||
it.removeAllPoints()
|
|
||||||
}
|
|
||||||
super.onDestroyView()
|
super.onDestroyView()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -182,10 +182,6 @@ class TaxiFragment :MvpFragment<TaxiFragment?, TaxiPresenter?>(),
|
|||||||
if (mPresenter != null) {
|
if (mPresenter != null) {
|
||||||
mPresenter?.onDestroy(this)
|
mPresenter?.onDestroy(this)
|
||||||
}
|
}
|
||||||
CallerMapUIServiceManager.getOverlayManager()?.let {
|
|
||||||
it.removeAllLines()
|
|
||||||
it.removeAllPoints()
|
|
||||||
}
|
|
||||||
CallerEagleBaseFunctionCall4OchManager.removeToolkitByTag(mutableListOf(lineView))
|
CallerEagleBaseFunctionCall4OchManager.removeToolkitByTag(mutableListOf(lineView))
|
||||||
CallerEagleBaseFunctionCall4OchManager.removeToolKitDefaultItemClickListener(lineView)
|
CallerEagleBaseFunctionCall4OchManager.removeToolKitDefaultItemClickListener(lineView)
|
||||||
startAutopilotAnimationView.cancelCountdown()
|
startAutopilotAnimationView.cancelCountdown()
|
||||||
|
|||||||
@@ -245,10 +245,6 @@ class TaxiPassengerBaseFragment() :
|
|||||||
override fun onDestroyView() {
|
override fun onDestroyView() {
|
||||||
mapBizView!!.onDestroy()
|
mapBizView!!.onDestroy()
|
||||||
overMapView?.onDestroy()
|
overMapView?.onDestroy()
|
||||||
CallerMapUIServiceManager.getOverlayManager()?.let {
|
|
||||||
it.removeAllLines()
|
|
||||||
it.removeAllPoints()
|
|
||||||
}
|
|
||||||
super.onDestroyView()
|
super.onDestroyView()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -138,10 +138,6 @@ class MapBizView(context: Context?, attrs: AttributeSet?) : MogoMapView(context,
|
|||||||
// 先取消注册数据,再onDestroy
|
// 先取消注册数据,再onDestroy
|
||||||
CallerChassisLocationWGS84ListenerManager.removeListener(TAG)
|
CallerChassisLocationWGS84ListenerManager.removeListener(TAG)
|
||||||
CallerChassisStatesListenerManager.removeListener(TAG)
|
CallerChassisStatesListenerManager.removeListener(TAG)
|
||||||
CallerMapUIServiceManager.getOverlayManager()?.let {
|
|
||||||
it.removeAllLines()
|
|
||||||
it.removeAllPoints()
|
|
||||||
}
|
|
||||||
super.onDestroy()
|
super.onDestroy()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -77,4 +77,6 @@ interface IMoGoOverlayManager {
|
|||||||
fun hideAllPointsExceptOwners(vararg owners: String)
|
fun hideAllPointsExceptOwners(vararg owners: String)
|
||||||
|
|
||||||
fun updateAnimPoint(options: Point.Options, mapTag:String = DEFAULT)
|
fun updateAnimPoint(options: Point.Options, mapTag:String = DEFAULT)
|
||||||
|
|
||||||
|
fun clear()
|
||||||
}
|
}
|
||||||
@@ -4,6 +4,7 @@ import android.content.Context
|
|||||||
import android.util.AttributeSet
|
import android.util.AttributeSet
|
||||||
import com.mogo.eagle.core.data.config.HdMapBuildConfig
|
import com.mogo.eagle.core.data.config.HdMapBuildConfig
|
||||||
import com.mogo.eagle.core.data.enums.Carmodel.T2
|
import com.mogo.eagle.core.data.enums.Carmodel.T2
|
||||||
|
import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager
|
||||||
import com.mogo.eagle.core.utilcode.mogo.logger.Logger
|
import com.mogo.eagle.core.utilcode.mogo.logger.Logger
|
||||||
import com.zhidaoauto.map.sdk.inner.abs.IMapController
|
import com.zhidaoauto.map.sdk.inner.abs.IMapController
|
||||||
import com.zhidaoauto.map.sdk.inner.abs.IMarkerController
|
import com.zhidaoauto.map.sdk.inner.abs.IMarkerController
|
||||||
@@ -37,4 +38,16 @@ class MoGoAutoView: MapAutoView {
|
|||||||
return controller.addSelfCar(markerOptions)
|
return controller.addSelfCar(markerOptions)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun onAttachedToWindow() {
|
||||||
|
super.onAttachedToWindow()
|
||||||
|
Logger.d(TAG, "-- onAttachedToWindow --")
|
||||||
|
CallerMapUIServiceManager.getOverlayManager()?.clear()
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onDetachedFromWindow() {
|
||||||
|
super.onDetachedFromWindow()
|
||||||
|
Logger.d(TAG, "-- onDetachedFromWindow --")
|
||||||
|
CallerMapUIServiceManager.getOverlayManager()?.clear()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -458,4 +458,13 @@ internal class MoGoOverlayManagerImpl: IMoGoOverlayManager {
|
|||||||
override fun updateAnimPoint(options: Options, mapTag:String) {
|
override fun updateAnimPoint(options: Options, mapTag:String) {
|
||||||
mapInstance.getMogoMap(mapTag)?.addAnimPoint(options)
|
mapInstance.getMogoMap(mapTag)?.addAnimPoint(options)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun clear() {
|
||||||
|
synchronized(points) {
|
||||||
|
points.clear()
|
||||||
|
}
|
||||||
|
synchronized(lines) {
|
||||||
|
lines.clear()
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user