2016-12-17 20 views
0

私はrxjavaとrxandroidを使用しています。私の発表者で私は使用しましたObservable.timer保存状態

Observable.timer(10, TimeUnit.SECONDS); 

私は画面の向きの変更に時間を節約したいと思います。たとえば、タイマーが開始し、3秒後にユーザーが画面の向きを変更していて、タイマーが再び開始されますが、0から10秒間ですが、残りの7秒間実行する必要があります。

解決方法はありますか?

答えて

0

あなたのデバイスの向きを変えたら、あなたのアクティビティのonCreate()メソッドを呼び出して、ビューを再描画します。このために、ヘルパー・フラグメントを作成し、そのフラグメントに操作を入れることができます。この行をsetRetainInstance(true);に入れてonCreate()メソッドに入れてください。次に、AsyncTaskの操作を行います。画面にタイマーの秒を表示する場合は、AsyncTaskクラスのonProgressUpdate()メソッドを呼び出します。次に、Progressコールバックでインターフェイスを作成し、このコールバックをonProgressUpdate()メソッドに挿入します。次に、あなたのフラグメントで作成したインターフェイスを実装することで、この操作を処理できます。私はgithubであなたを助けることができる簡単なリポジトリを持っています。 Enjoy。この記事はまたあなたを助けることができる:Enjoy

+0

rxjavaを使用して、後で良い解決策として非同期タスクを使用すると思いません。多分私はrxjavaのキャッシュ機能で私の問題を解決することはできますか? – MobileDev

+0

もちろん、私はあなたの仕事をテストしませんでしたが、私は考えがあります。 Observableメソッドを1つのメソッドに入れ、時間を返す他のメソッドを作成します(3秒またはsmth)。あなたのアクティビティにフラグメントを作成し、onCreateメソッドでnullかどうかを確認するif(fragment == null){fragment = new Fragment} else {fragment.getTime()} – JavadKhan

+0

RxJavaキャッシュ機能ではない、それは私のキャッシュ機能です))) – JavadKhan

関連する問題