gpt4 book ai didi

java - 如何使用 RxJava 管理 DialogFragment?

转载 作者:搜寻专家 更新时间:2023-10-30 19:47:23 25 4
gpt4 key购买 nike

我一直在尝试确定是否可以创建可观察的 DialogFragment。本质上,我希望能够:

  • 创建并显示一个DialogFragment
  • 取回一个 rx Observable 可以订阅结果(确定/取消按下、字符串输入、后台任务成功/失败等)
  • 妥善处理配置变更

到目前为止,我找到的最接近的是 ReactiveDialog ,它曾经是 RxAndroid 的一部分,但现在是 removed from RxAndroid in v1.0.0作为简化 RxAndroid 的一部分。

虽然 ReactiveDialog 确实符合我的前两个标准,但它似乎无法处理配置更改。有两个问题需要考虑:

  1. DialogFragment 必须在配置更改时维护其 Observable,以便它可以通知订阅者其状态。
  2. 订阅者必须能够在配置更改后继续订阅或重新订阅(显然不会产生内存泄漏)。

我对 RxJava 还是很陌生,所以我仍在努力思考如何管理这样的事情。这似乎应该是可能的,但我觉得它需要一个静态或单例的 Observable 管理器,可能还需要 retainedInstance DialogFragments

有人对此有任何建议或最佳做法吗?

最佳答案

这里有两个问题;一个是您不想在重新布局期间丢失 Java 对象 - 查看 runtime changes docs关于那个。

另一个问题是您想要创建一个 Observable,它具有对话框的操作,当该操作被触发时。为此,请查看 RxJava 文档,Asynchronous Observer example .您需要创建一个 Observable.OnSubscribe,并将该 Subscriber 传递给您的代码,该代码将调用必要的 onNext/onError/onCompleted 调用。

关于java - 如何使用 RxJava 管理 DialogFragment?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32418282/

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