Jelajahi Sumber

refactor(还钥匙) :
- 离开的时候清除地图的图片减少内存占用

周文健 5 bulan lalu
induk
melakukan
aab7978b54

+ 1 - 0
app/src/main/AndroidManifest.xml

@@ -36,6 +36,7 @@
         android:roundIcon="@mipmap/ic_launcher_round"
         android:supportsRtl="true"
         android:theme="@style/Theme.ISCS"
+        android:largeHeap="true"
         tools:targetApi="31">
         <activity
             android:name=".view.activity.test.face.arcsoft.ArcsoftTestActivity"

+ 16 - 0
app/src/main/java/com/grkj/iscs/util/MapViewExtension.kt

@@ -0,0 +1,16 @@
+package com.grkj.iscs.util
+
+import android.graphics.Bitmap
+import android.graphics.Color
+import android.graphics.ColorSpace
+import androidx.core.graphics.createBitmap
+import com.onlylemi.mapview.library.MapView
+
+/**
+ * mapview释放已有的
+ */
+fun MapView?.release() {
+    this?.loadMap(Bitmap.createBitmap(1, 1, Bitmap.Config.RGB_565).apply {
+        eraseColor(Color.WHITE)
+    })
+}

+ 0 - 1
app/src/main/java/com/grkj/iscs/view/fragment/DeviceStatusFragment.kt

@@ -120,7 +120,6 @@ class DeviceStatusFragment :
 
     override fun onResume() {
         super.onResume()
-
         fun refreshAdapter() {
             ThreadUtils.runOnIO {
                 if (isResumed) {

+ 11 - 2
app/src/main/java/com/grkj/iscs/view/fragment/StepFragment.kt

@@ -21,6 +21,7 @@ import com.grkj.iscs.util.BitmapUtil
 import com.grkj.iscs.util.SPUtils
 import com.grkj.iscs.util.ToastUtils
 import com.grkj.iscs.util.log.LogUtil
+import com.grkj.iscs.util.release
 import com.grkj.iscs.view.base.BaseMvpFragment
 import com.grkj.iscs.view.dialog.TipDialog
 import com.grkj.iscs.view.iview.IStepView
@@ -106,7 +107,7 @@ class StepFragment(val goBack: () -> Unit, val changePage: (PageChangeBO) -> Uni
             }
 
         mBinding?.cbBack?.setOnClickListener { goBack() }
-
+        initMap()
         mBinding?.cbAction?.setOnClickListener {
             mCanHandle ?: return@setOnClickListener
             if (mCanHandle == false) {
@@ -152,7 +153,6 @@ class StepFragment(val goBack: () -> Unit, val changePage: (PageChangeBO) -> Uni
                 )
             }
         }
-        initMap()
 
         observer = Observer { newData ->
             if (newData.code != MSG_EVENT_UPDATE_TICKET_PROGRESS) {
@@ -168,6 +168,14 @@ class StepFragment(val goBack: () -> Unit, val changePage: (PageChangeBO) -> Uni
         }
     }
 
+    override fun onResume() {
+        super.onResume()
+        mChangePage?.let {
+            refreshPage(it)
+        }
+    }
+
+
     private fun initMap() {
         mBinding?.mapview?.isScaleAndRotateTogether = false
         mBinding?.mapview?.setMapViewListener(object : MapViewListener {
@@ -514,6 +522,7 @@ class StepFragment(val goBack: () -> Unit, val changePage: (PageChangeBO) -> Uni
 
     override fun onPause() {
         super.onPause()
+        mBinding?.mapview?.release()
         mStep = 0
     }
 

+ 6 - 0
app/src/main/java/com/grkj/iscs/view/fragment/SwitchStatusFragment.kt

@@ -6,6 +6,7 @@ import com.grkj.iscs.databinding.FragmentSwitchStatusBinding
 import com.grkj.iscs.util.BitmapUtil
 import com.grkj.iscs.util.ToastUtils
 import com.grkj.iscs.util.log.LogUtil
+import com.grkj.iscs.util.release
 import com.grkj.iscs.view.base.BaseMvpFragment
 import com.grkj.iscs.view.iview.ISwitchStatusView
 import com.grkj.iscs.view.presenter.SwitchStatusPresenter
@@ -48,6 +49,11 @@ class SwitchStatusFragment :
         refreshSwitchStatus()
     }
 
+    override fun onPause() {
+        super.onPause()
+        mBinding?.mapview?.release()
+    }
+
     private fun getMap(mapId: String) {
         presenter?.getMapInfo(mapId.toLong()) { itMapInfo ->
             // 如果没有图 URL,直接返回