2017-04-20 13 views
0

ユーザーが変更のように感じると、アクティビティのテーマを変更する必要があります。 そのためには、テーマを設定した後に、テーマをアクティブにするために、recreate()を呼び出さなければなりません。 しかし、私のアクティビティはWebからデータを取得し、Recyclerビューでユーザーに表示します。 テーマが変わるたびに、データがリフレッシュされているので、これを防止する必要があります。再作成アクティビティを呼び出す際にデータが失われないようにする方法

データベースに保存する以外に、recreate()を呼び出すときにデータを保存する方法はありますか?

私はonSaveInstanceState()をオーバーライドしようとしました。再作成が呼び出されたときにonCreate()のsavedInstanceStateは 'null'と思われます。

+0

このデータを、シングルトンキャッシュなど、アクティビティの外に一時的に保持します。メモリリークを避けるように十分注意してください。 – CommonsWare

答えて

1

あなたの活動の

ライフサイクルを何回も変更され、あなたはこれを防ぐことができないようにSQLiteのデータベースやSharedPreferencesとしてファイルにデータを保存する必要があり、あなたのデータは、イベントに保存し、検索する必要がありますOnStartメソッドなどOnResumeあなたのアクティビティが使用されていないとAndroid OSは、より多くのメモリを必要とするとき、あなたのデータ、静的変数はヒープに格納し、消去されます保存するためにスタティック変数のようなものを使用していない別の提案として

関連する問題