android 片段 livedata 删除观察者不工作

android fragment livedata remove observer not working

我正在使用 Jetpack 导航进行导航。我观察了使用 viewmodel livedata 提交的表单。

我正在观察片段 (SignUpFragment) 的 onActivityCreated 中的实时数据。

viewModel.signup.observe(viewLifecycleOwner, Observer<Resource<BaseResponse<User>>> {
        checkSignUpResponse(it)
})

在我导航到下一个片段 (OtpFragment) 之后,当我使用 navigationUp() 注册观察者调用观察者中的方法 (checkSignUpResponse) 并再次将我发送到 otp 片段时。

我试过了

viewModel.signup.removeObservers(viewLifecycleOwner)

还有

viewModel.signup.removeObserver(signUpObserver)

但它不起作用。

我刚刚在导航时使用了 isNavigatedToOtp 布尔值切换 n 检查天气是 isNavigatedToOtp false n 然后调用 checkSignUpResponse。