0

これは私がしばらくの間使用してきた方法ですが、廃止されたようです。画面がバックグラウンドに移動したり回転したりしたときにデータを保存および復元する正しい方法はフラグメントであると文献に書かれているようです。

これについてご意見をいただきたいです

私がアプリで行ってきたことは、ApplicationDataHolder() というクラスを作成することです。

これには、各アクティビティとそこに格納されているフラグメントの状態を定義するすべての変数が含まれています。

たとえば、チケットのリストと 2 つのウィジェットを表示するアクティビティがあり、1 つはチケットを並べ替える方法で、もう 1 つは昇順か降順かを選択します。

このために、変数 List _tickets、SortOrder _order、boolean _ascending を DataHolder() に作成し、デフォルト値を指定しました

アクティビティが初めて再作成/作成されるときはいつでも、それらの変数にアクセスしてデフォルト値を設定します (デフォルトの並べ替え順序、初期リストはどうなりますか)

これは最適な方法ではありませんか?これにより問題が発生する可能性があります (たとえば、画面が何度も回転した後)、これに対してフラグメントまたは saveinstancestate/restoreinstancestate を使用する利点は何ですか?

あなたが提供できる助けを前もって感謝します

4

1 に答える 1

1

画面が背景になったり回転したりしたときにデータを保存および復元する正しい方法はフラグメントです

ここでは、ユーザーからの入力データ、またはセンサーや Web サービスからのデータとして、動的に取得されるデータについて説明しています。このデータは、回転やタブのスワイプなどの状態変化が発生したときに、を使用して復元する必要があります。onSaveInstanceState()onConfigurationChanged()

もちろん、初期値は中央のグローバル定数ファイルに保存できますが、それは問題ありません。

于 2015-03-08T11:39:16.680 に答える