2015-09-05 30 views
13

私は、観測可能なDialogFragmentを作成することが可能かどうかを判断しようとしてきました。基本的に私のことができるようにしたい:RxJavaでDialogFragmentを管理するにはどうすればいいですか?

  • は結果のために加入することができRX Observable(OK /キャンセル押され、文字列の入力、バックグラウンドタスクの成功/失敗を取り戻すDialogFragment
  • を作成して表示し、など)
  • が正しく、私が見つけた最も近いものはRxAndroidの一部に使用されますが、RxAndroidを簡素化の一環としてremoved from RxAndroid in v1.0.0されているReactiveDialog、あるこれまでの設定変更

を扱います。

ReactiveDialogが最初の2つの基準を満たしているように見えますが、構成の変更を処理していないようです。それは、その状態の加入者に通知することができるように

  1. DialogFragmentはそのObservable構成全体で変更を維持する必要があります考慮すべき2つの問題があります。
  2. 加入者は、設定変更後に(明らかにメモリリークを引き起こさずに)加入契約を保持するか、または再加入することができなければなりません。

私はまだRxJavaをかなり新しくしています。だから、私はまだあなたがこのようなことをどうやって管理するかについて頭を落とそうとしています。可能なはずですが、スタティックまたはシングルトンのObservableマネージャが必要で、おそらくretainedInstanceDialogFragmentsが必要なような気がします。

誰もがこれに関する提案やベストプラクティスを持っていますか?

+0

こんにちは!あなたはどんな解決策を見つけましたか – Tiberal

答えて

1

ここでは2つの問題があります。 1つは、再レイアウト中にJavaオブジェクトを失いたくないということです。そのことについてruntime changes docsを調べてください。

もう1つの問題は、そのアクションがトリガされたときにダイアログのアクションを持つObservableを作成することです。そのためには、RxJavaのドキュメントであるAsynchronous Observer exampleを見てください。 Observable.OnSubscribeを作成し、必要なコードをonNext/onError/onCompletedとするコードにSubscriberを渡す必要があります。

関連する問題