gpt4 book ai didi

Android 架构无法添加具有不同生命周期的相同观察者

转载 作者:行者123 更新时间:2023-11-29 01:02:37 26 4
gpt4 key购买 nike

我的应用程序有 MainActivity,启动 InvoiceActivity 和启动 InvoicePaymentActivity 最后启动 PaymentSuccessActivity。

我开始使用架构组件,它似乎工作正常,但我发现从 PaymentSuccessActivity 启动 MainActivity 时出现问题。

到目前为止,我只会启动新的 Intent,应用程序会“重置”到主屏幕。使用 ViewModel 我得到“无法添加具有不同生命周期的相同观察者”。

我找到了 2 个解决方案,但想不出哪个更好:

  1. onResume订阅观察者,onPause取消订阅

  2. 在下一个 Activity 启动后,完成除 MainActivity 之外的所有先前 Activity 。所以当我刚刚完成 PaymentSuccessActivity 时,用户将在 MainActivity 上。这有一个缺点,即用户向后导航...

但是我好像不能再添加观察者了。。。怎么办取消订阅/订阅?我的代码现在不起作用...

override fun onResume() {
super.onResume()
viewModel.intercom.observe(this, observer)
}


override fun onPause() {
super.onPause()
viewModel.intercom.removeObserver { observer }
}

最佳答案

所以这整个问题都是基于使用匿名观察者类。一旦我创建了实现观察者接口(interface)的观察者类,应用程序就开始正常工作,无需手动观察者/删除。谁能解释为什么这是个问题?

关于Android 架构无法添加具有不同生命周期的相同观察者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50045208/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com