fix(glass): 修复复合叠放功能中的内存泄漏和状态检查问题
- 更新 glass3.open.sdk 依赖版本从 2.1.7-E 到 2.1.6-E - 在 CompositeLayupResultActivity 中添加 activity 状态检查避免已销毁后执行操作 - 在 CompositeLayupTaskActivity 中添加 activity 状态检查避免已销毁后执行操作 - 在 CompositeLayupResultActivity 的 onDestroy 中清理 UI handler 回调和媒体服务监听器 - 在 CompositeLayupTaskActivity 的 onDestroy 中清理媒体服务回调和离线命令监听器
这个提交包含在:
父节点
9376f1665b
当前提交
fbbd205386
@ -142,7 +142,8 @@ dependencies {
|
||||
implementation 'com.google.android.material:material:1.3.0'
|
||||
implementation "io.noties.markwon:core:4.6.2"
|
||||
|
||||
implementation ('com.rokid.security:glass3.open.sdk:2.1.7-E') {
|
||||
// implementation ('com.rokid.security:glass3.open.sdk:2.1.7-E') {
|
||||
implementation ('com.rokid.security:glass3.open.sdk:2.1.6-E') {
|
||||
exclude group: "org.slf4j"
|
||||
}
|
||||
implementation 'com.rokid.security.sdk:online-speech:0.1.0'
|
||||
|
||||
@ -56,11 +56,13 @@ class CompositeLayupResultActivity : BaseActivity<ActivityCompositeLayupResultBi
|
||||
private var uiMode = UiMode.RECOGNIZE_SUCCESS
|
||||
|
||||
private val layupWorkingRunnable: Runnable = Runnable {
|
||||
if (isFinishing || isDestroyed) return@Runnable
|
||||
if (uiMode == UiMode.LAYUP_PROMPT) {
|
||||
applyMode(UiMode.LAYUP_WORKING)
|
||||
}
|
||||
}
|
||||
private val completeRunnable: Runnable = Runnable {
|
||||
if (isFinishing || isDestroyed) return@Runnable
|
||||
if (uiMode == UiMode.COMPLETE) {
|
||||
goTaskList()
|
||||
}
|
||||
@ -293,6 +295,10 @@ class CompositeLayupResultActivity : BaseActivity<ActivityCompositeLayupResultBi
|
||||
}
|
||||
|
||||
override fun onDestroy() {
|
||||
uiHandler.removeCallbacksAndMessages(null)
|
||||
GlassMediaServiceHelper.removePhotoCallback(photoCallback)
|
||||
OfflineCmdServiceHelper.removeListenerCompositeLayup()
|
||||
OfflineCmdServiceHelper.removeOnLineListener(listener)
|
||||
super.onDestroy()
|
||||
window.clearFlags(android.view.WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
|
||||
}
|
||||
|
||||
@ -59,6 +59,7 @@ class CompositeLayupTaskActivity :
|
||||
override fun getCallbackId(): String = photoCallbackId
|
||||
|
||||
override fun onTakePhotoV2(path: String?, width: Int, height: Int) {
|
||||
if (isFinishing || isDestroyed) return
|
||||
LogHelper.d("CompositeLayupTask onTakePhotoV2 width=$width height=$height path=$path")
|
||||
if (path == null) {
|
||||
if (isPhoto) {
|
||||
@ -142,6 +143,9 @@ class CompositeLayupTaskActivity :
|
||||
override fun onDestroy() {
|
||||
isCaptureInFlight = false
|
||||
hasNavigatedNextPage = false
|
||||
GlassMediaServiceHelper.removePhotoCallback(photoCallback)
|
||||
OfflineCmdServiceHelper.removeListenerCompositeLayup()
|
||||
OfflineCmdServiceHelper.removeOnLineListener(listener)
|
||||
super.onDestroy()
|
||||
window.clearFlags(android.view.WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
|
||||
}
|
||||
|
||||
正在加载...
在新工单中引用
屏蔽一个用户