0

私はパフォーマンスに関する質問があります。 SharedPreferencesを使用する場合、onSaveInstantStateを使用すると便利ですか?SharedPreferencesを使用する場合は、onSaveInstantStateを使用すると便利です

それは価値がテストに条件を作るために場合、私は、意味:

if(savedInstanceState != null) { 
    // load with on save instant state 
} 

else { 
    // load with shared preferences 
} 

または私はいつもSharedPreferencesから件のデータをロードする必要がありますか?

+0

要件は何ですか?どのタイプのデータを保存するのですか?アプリが殺されて再び開かれた後でも、そのデータを永続化する必要がありますか? – sJy

+0

これはオブジェクトのコレクションです(sharedPreferencesに格納するgsonを使用します)。データは永続化する必要があります –

答えて

0

どのケースでもデータを永続化する必要がある場合は、をSQLiteに移動してください。

+0

それでSqliteがSharedpreference + gsonよりも速くて遅くなるのではないかと疑問に思うのです。 –

+0

SQLiteがデータ操作の詳細を助けます。何らかの条件でデータを照会する必要がある場合は、SQLiteが役に立ちますが、SharedPreferencesで何もできません。 – sJy

+0

問題は私はそれらの日付を編集する必要はありません、それだけを読む –

2

はいをありがとう、それはまだ便利です、あなたはリスト、マップやその他のカスタムオブジェクトなどのSharedPrefrences辞書に保存することはできませんものがたくさんあります。

SharedPrefrencesのデータを保存する場合は、アプリケーションを使用してデータを永続させたい場合(アプリケーションが破棄された後に)、データを保存する場合はonSaveInstanceStateバンドルを保存してください。configuration changes - サイズ変更、言語変更)。

+0

実際にはオブジェクトのコレクションなので、Gsonを使用してそれらのデータを保存します。ところで、それはGsonとSharedPreferences(それは小さなコレクション最大100アイテム)を使用するか、またはSQLiteを使用する価値がありますか? –

+0

それは別の質問かもしれませんが、JSONを逆シリアル化してオブジェクトをSQLiteデータベースに保存します。 –

関連する問題