修复上传语音文件监听造成的内存泄漏
This commit is contained in:
xuxinchao
2022-07-29 13:56:52 +08:00
parent 6386fbbf5d
commit 5dbc7d33ee
2 changed files with 36 additions and 2 deletions

View File

@@ -27,6 +27,7 @@ import com.mogo.eagle.core.utilcode.util.TimeUtils
import com.mogo.eagle.core.utilcode.util.TimeUtils.millis2String
import com.zhidao.loglib.call.LogInfoManagerFactory
import com.zhidao.loglib.upload.OnUploadListener
import com.zhidao.loglib.upload.UploadManager
import com.zhjt.mogo_core_function_devatools.R
import com.zhjt.mogo_core_function_devatools.badcase.consts.BadCaseConfig
import com.zhjt.mogo_core_function_devatools.badcase.record.RecordManager
@@ -247,12 +248,16 @@ class InitiativeBadCaseWindow constructor(activity: Activity) : View.OnTouchList
object : OnUploadListener {
override fun onUploadSuccess(filePath: String, downloadUrl: String) {
CallerLogger.d("$M_DEVA$TAG", "语音文件上传成功downloadUrl=$downloadUrl")
//将语音文件上传Cos监听移除
removeUploadListener(singlePath)
//上传到服务器
upload(downloadUrl)
}
override fun onUploadFail(filePath: String) {
TipToast.shortTip("上传语音文件失败")
//将语音文件上传Cos监听移除
removeUploadListener(singlePath)
}
})
}else{
@@ -261,6 +266,19 @@ class InitiativeBadCaseWindow constructor(activity: Activity) : View.OnTouchList
}
}
/**
* 将语音文件上传Cos监听移除
* @param filePath 文件路径
*/
private fun removeUploadListener(filePath: String){
val pkgInfo: List<String> = filePath.substring(
filePath.lastIndexOf("/") + 1,
filePath.lastIndexOf(".")
).split("_")
val pkgName = if (pkgInfo.size == 3) pkgInfo[1] else ""
UploadManager.getInstance().removeUploadListener(pkgName)
}
/**
* 将记录上传到服务器
* @param downloadUrl 语音文件下载地址

View File

@@ -17,7 +17,6 @@ import com.google.android.flexbox.FlexboxLayout
import com.mogo.cloud.passport.MoGoAiCloudClientConfig
import com.mogo.eagle.core.data.app.AppConfigInfo
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotCarStateListener
import androidx.lifecycle.lifecycleScope
import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotCarStatusListenerManager
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_DEVA
@@ -35,7 +34,7 @@ import com.zhjt.mogo_core_function_devatools.badcase.record.RecordManager
import kotlinx.coroutines.GlobalScope
import kotlinx.coroutines.launch
import mogo.telematics.pad.MessagePad
import com.mogo.eagle.core.utilcode.kotlin.*
import com.zhidao.loglib.upload.UploadManager
import java.io.File
import java.lang.reflect.Field
@@ -198,12 +197,16 @@ class PassiveBadCaseWindow constructor(activity: Activity) : View.OnTouchListene
object : OnUploadListener {
override fun onUploadSuccess(filePath: String, downloadUrl: String) {
CallerLogger.d("$M_DEVA$TAG", "语音文件上传成功downloadUrl=$downloadUrl")
//将语音文件上传Cos监听移除
removeUploadListener(singlePath)
//上传到服务器
upload(downloadUrl)
}
override fun onUploadFail(filePath: String) {
TipToast.shortTip("上传语音文件失败")
//将语音文件上传Cos监听移除
removeUploadListener(singlePath)
}
})
}else{
@@ -212,6 +215,19 @@ class PassiveBadCaseWindow constructor(activity: Activity) : View.OnTouchListene
}
}
/**
* 将语音文件上传Cos监听移除
* @param filePath 文件路径
*/
private fun removeUploadListener(filePath: String){
val pkgInfo: List<String> = filePath.substring(
filePath.lastIndexOf("/") + 1,
filePath.lastIndexOf(".")
).split("_")
val pkgName = if (pkgInfo.size == 3) pkgInfo[1] else ""
UploadManager.getInstance().removeUploadListener(pkgName)
}
/**
* 将记录上传到服务器
* @param downloadUrl 语音文件下载地址