軽量なJsonデータなどの文字列情報はSharedPreferencesを使って保存するのが便利
SharedPreferencesにアクセス
fun getCache(context: Context, key:String):String{ val cache = PreferenceManager.getDefaultSharedPreferences(context).getString(key, "") return cache } fun createCache(context: Context, key: String, value:String){ PreferenceManager.getDefaultSharedPreferences(context).edit().apply { putString(key, value) apply() } }
使用例
val cache_key = "response" var str = "" if( isNetworkAvailable(context) ){ str = //APIから取得する処理 createCache(context, cache_key, str ) } //オフライン時は前回取得のデータを返す else{ str = getCache(context, cache_key) }
これでオンライン時には新しい情報にキャッシュを更新し、オフライン時には前回取得したキャッシュを参照できる。