diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/ui/StatusView.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/ui/StatusView.kt index 235c2631e4..dc180f0e9c 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/ui/StatusView.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/ui/StatusView.kt @@ -60,9 +60,9 @@ internal class StatusView(private val model: StatusModel, ctx: Context): Constra } } - onDetach { - observer?.also { model.status.removeObserver(it) } - } +// onDetach { +// observer?.also { model.status.removeObserver(it) } +// } } override fun onVisibilityChanged(changedView: View, visibility: Int) { diff --git a/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/kotlin/Extensions.kt b/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/kotlin/Extensions.kt index 1f7106f581..a39239dd0d 100644 --- a/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/kotlin/Extensions.kt +++ b/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/kotlin/Extensions.kt @@ -75,9 +75,10 @@ val T.lifecycleOwner: LifecycleOwner override fun onViewDetachedFromWindow(v: View) { lifecycle.let { - if (it.currentState.isAtLeast(Lifecycle.State.RESUMED)) { + if (ViewCompat.isAttachedToWindow(v) && it.currentState.isAtLeast(Lifecycle.State.RESUMED)) { this@lifecycleOwner.removeOnAttachStateChangeListener(this) it.currentState = Lifecycle.State.DESTROYED + setTag(R.id.view_lifecycle_owner, null) } } }