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 'com.google.android.material:material:1.3.0'
|
||||||
implementation "io.noties.markwon:core:4.6.2"
|
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"
|
exclude group: "org.slf4j"
|
||||||
}
|
}
|
||||||
implementation 'com.rokid.security.sdk:online-speech:0.1.0'
|
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 var uiMode = UiMode.RECOGNIZE_SUCCESS
|
||||||
|
|
||||||
private val layupWorkingRunnable: Runnable = Runnable {
|
private val layupWorkingRunnable: Runnable = Runnable {
|
||||||
|
if (isFinishing || isDestroyed) return@Runnable
|
||||||
if (uiMode == UiMode.LAYUP_PROMPT) {
|
if (uiMode == UiMode.LAYUP_PROMPT) {
|
||||||
applyMode(UiMode.LAYUP_WORKING)
|
applyMode(UiMode.LAYUP_WORKING)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
private val completeRunnable: Runnable = Runnable {
|
private val completeRunnable: Runnable = Runnable {
|
||||||
|
if (isFinishing || isDestroyed) return@Runnable
|
||||||
if (uiMode == UiMode.COMPLETE) {
|
if (uiMode == UiMode.COMPLETE) {
|
||||||
goTaskList()
|
goTaskList()
|
||||||
}
|
}
|
||||||
@ -293,6 +295,10 @@ class CompositeLayupResultActivity : BaseActivity<ActivityCompositeLayupResultBi
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun onDestroy() {
|
override fun onDestroy() {
|
||||||
|
uiHandler.removeCallbacksAndMessages(null)
|
||||||
|
GlassMediaServiceHelper.removePhotoCallback(photoCallback)
|
||||||
|
OfflineCmdServiceHelper.removeListenerCompositeLayup()
|
||||||
|
OfflineCmdServiceHelper.removeOnLineListener(listener)
|
||||||
super.onDestroy()
|
super.onDestroy()
|
||||||
window.clearFlags(android.view.WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
|
window.clearFlags(android.view.WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
|
||||||
}
|
}
|
||||||
|
|||||||
@ -59,6 +59,7 @@ class CompositeLayupTaskActivity :
|
|||||||
override fun getCallbackId(): String = photoCallbackId
|
override fun getCallbackId(): String = photoCallbackId
|
||||||
|
|
||||||
override fun onTakePhotoV2(path: String?, width: Int, height: Int) {
|
override fun onTakePhotoV2(path: String?, width: Int, height: Int) {
|
||||||
|
if (isFinishing || isDestroyed) return
|
||||||
LogHelper.d("CompositeLayupTask onTakePhotoV2 width=$width height=$height path=$path")
|
LogHelper.d("CompositeLayupTask onTakePhotoV2 width=$width height=$height path=$path")
|
||||||
if (path == null) {
|
if (path == null) {
|
||||||
if (isPhoto) {
|
if (isPhoto) {
|
||||||
@ -142,6 +143,9 @@ class CompositeLayupTaskActivity :
|
|||||||
override fun onDestroy() {
|
override fun onDestroy() {
|
||||||
isCaptureInFlight = false
|
isCaptureInFlight = false
|
||||||
hasNavigatedNextPage = false
|
hasNavigatedNextPage = false
|
||||||
|
GlassMediaServiceHelper.removePhotoCallback(photoCallback)
|
||||||
|
OfflineCmdServiceHelper.removeListenerCompositeLayup()
|
||||||
|
OfflineCmdServiceHelper.removeOnLineListener(listener)
|
||||||
super.onDestroy()
|
super.onDestroy()
|
||||||
window.clearFlags(android.view.WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
|
window.clearFlags(android.view.WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
|
||||||
}
|
}
|
||||||
|
|||||||
正在加载...
在新工单中引用
屏蔽一个用户