私はrxjavaとrxandroidを使用しています。私の発表者で私は使用しましたObservable.timer保存状態
Observable.timer(10, TimeUnit.SECONDS);
私は画面の向きの変更に時間を節約したいと思います。たとえば、タイマーが開始し、3秒後にユーザーが画面の向きを変更していて、タイマーが再び開始されますが、0から10秒間ですが、残りの7秒間実行する必要があります。
解決方法はありますか?
私はrxjavaとrxandroidを使用しています。私の発表者で私は使用しましたObservable.timer保存状態
Observable.timer(10, TimeUnit.SECONDS);
私は画面の向きの変更に時間を節約したいと思います。たとえば、タイマーが開始し、3秒後にユーザーが画面の向きを変更していて、タイマーが再び開始されますが、0から10秒間ですが、残りの7秒間実行する必要があります。
解決方法はありますか?
あなたのデバイスの向きを変えたら、あなたのアクティビティのonCreate()
メソッドを呼び出して、ビューを再描画します。このために、ヘルパー・フラグメントを作成し、そのフラグメントに操作を入れることができます。この行をsetRetainInstance(true);
に入れてonCreate()
メソッドに入れてください。次に、AsyncTask
の操作を行います。画面にタイマーの秒を表示する場合は、AsyncTask
クラスのonProgressUpdate()
メソッドを呼び出します。次に、Progress
コールバックでインターフェイスを作成し、このコールバックをonProgressUpdate()
メソッドに挿入します。次に、あなたのフラグメントで作成したインターフェイスを実装することで、この操作を処理できます。私はgithubであなたを助けることができる簡単なリポジトリを持っています。 Enjoy。この記事はまたあなたを助けることができる:Enjoy。
rxjavaを使用して、後で良い解決策として非同期タスクを使用すると思いません。多分私はrxjavaのキャッシュ機能で私の問題を解決することはできますか? – MobileDev
もちろん、私はあなたの仕事をテストしませんでしたが、私は考えがあります。 Observableメソッドを1つのメソッドに入れ、時間を返す他のメソッドを作成します(3秒またはsmth)。あなたのアクティビティにフラグメントを作成し、onCreateメソッドでnullかどうかを確認するif(fragment == null){fragment = new Fragment} else {fragment.getTime()} – JavadKhan
RxJavaキャッシュ機能ではない、それは私のキャッシュ機能です))) – JavadKhan