如何使用RxJava管理DialogFragment?

ash*_*hes 14 java android android-dialogfragment rx-java

我一直试图确定是否可以创建一个可观察的DialogFragment.基本上我希望能够:

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

到目前为止,我发现最接近的是ReactiveDialog,它曾经是RxAndroid的一部分,但是已经从v1.0.0中的RxAndroid中删除,作为简化RxAndroid的一部分.

虽然ReactiveDialog看起来确实符合我的前两个标准,但似乎没有处理配置更改.有两个问题需要考虑:

  1. DialogFragment必须保持其Observable跨配置更改,因此它可以通知其状态的用户.
  2. 订户必须能够在配置更改后保持订阅或重新订阅(显然不会产生内存泄漏).

我仍然是RxJava的新手,所以我仍然试图围绕你如何管理这样的事情.看起来它应该是可能的,但我觉得它需要一个静态或单独的Observable管理器,并且可能retainedInstance DialogFragments.

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

Tas*_*kos 1

这里有两个问题;一是您不想在重新布局期间丢失 Java 对象 - 请查看有关该问题的运行时更改文档

另一个问题是,当触发该操作时,您想要创建一个具有对话框操作的 Observable。为此,请查看 RxJava 文档,异步观察者示例。您将需要创建一个Observable.OnSubscribe,并将其传递给将调用必要的//调用的Subscriber代码。onNextonErroronCompleted