Android SharedPreferences 的使用
學(xué)而時(shí)習(xí)之,穩(wěn)固而之心,如果這邊文章幫助了您,希望給一個(gè)贊?
?
如果你只是著急使用忘記了方法 那么下面這些代碼完全滿足了您的使用
private static final String USER = "app";
SharedPreferences sp = this.getSharedPreferences(USER, Context.MODE_PRIVATE);SharedPreferences.Editor editor = sp.edit();//獲取編輯器editor.putString("token", "412714199310245458");editor.commit();SharedPreferences sharedPreferences = this.getSharedPreferences(USER, Context.MODE_PRIVATE);String value = sharedPreferences.getString("token", "");Log.e("----------value", value);
如果想了解下其他的,可以看下面的內(nèi)容
1 定義一個(gè)靜態(tài)的USER是干什么作用的
這個(gè)是給緩存的內(nèi)容的xml 取一個(gè)名字,?
怎樣查看這個(gè)名字以及內(nèi)容呢
1 點(diǎn)擊studio工具右下角的
2 點(diǎn)擊data?然后到里面在點(diǎn)擊data
3 里面有個(gè)文件夾的名字與自己的包名一樣
(這里順便說(shuō)一下如果項(xiàng)目ANR了,看到到這里的cache里面查看日志呢)
點(diǎn)擊去看看
看到這個(gè)app沒(méi),這個(gè)就是剛才取的名字
可以點(diǎn)擊查看內(nèi)容
這里可以看到SharedPreferences 緩存的內(nèi)容,不過(guò)手機(jī)里面是查看不到的,記住奧
?
在說(shuō)下Context.MODE_PRIVATE? 這個(gè)是?SharedPreferences 的類型 說(shuō)明這種緩存是私有數(shù)據(jù)?只有本程序讀寫(xiě)
然后還有其他的類型?
3個(gè)方法過(guò)時(shí)了
這些可以不用管,一般都是使用? ? ?Context.MODE_PRIVATE//私有數(shù)據(jù)
緩存數(shù)據(jù) 類型有 集合,字符串 布爾,整形,長(zhǎng)整型
editor.putString(緩存的名字自己取的名字獲取緩存使用的標(biāo)識(shí), 緩存的內(nèi)容);
editor.commit(); 這個(gè)還緩存的類型 是同步緩存
editor.apply(); 是異常緩存 (這2個(gè)曾經(jīng)面試題有人問(wèn)過(guò)我)
了解完之后 現(xiàn)在需要每個(gè)用戶的數(shù)據(jù)獨(dú)自 這個(gè)時(shí)候使用緩存改怎樣操作呢
這個(gè)就是需要我們?nèi)〉哪莻€(gè)名字了 可以給每個(gè)用戶一個(gè)緩存的xml 這樣就不會(huì)存在數(shù)據(jù)
重復(fù)的情況了 ,這個(gè)也是自己在項(xiàng)目中經(jīng)常使用到的
SharedPreferences sp = this.getSharedPreferences(USER+"手機(jī)號(hào)", Context.MODE_PRIVATE);SharedPreferences.Editor editor = sp.edit();//獲取編輯器editor.putString("token", "412714199310245458");editor.commit();
假如現(xiàn)在2個(gè)用戶的緩存信息如下
使用自己取的名字區(qū)分很不錯(cuò)?
最后的一個(gè)問(wèn)題就是SharedPreferences 的工具類? 這個(gè)要看自己怎樣操作了
假如寫(xiě)了一個(gè)通用的SharedPreferences 然后每次獲取的時(shí)候根據(jù)靜態(tài)變量來(lái)回去,個(gè)人感覺(jué)很麻煩 ,也不方便記憶
個(gè)人建議寫(xiě)一個(gè)存放緩存的utils 里面填寫(xiě)如下
/*** 保存當(dāng)前用戶的UserId* @param context* @param userId*/public static void saveUserId(Context context, String userId) {SharedPreferences sharedPreferences = context.getSharedPreferences(APP, Context.MODE_PRIVATE); //私有數(shù)據(jù)SharedPreferences.Editor editor = sharedPreferences.edit();//獲取編輯器editor.putString("userId", userId);editor.commit();//提交修改}/*** 獲取當(dāng)前用戶的userId** @param context*/public static String getUserId(Context context) {SharedPreferences sharedPreferences = context.getSharedPreferences(APP, Context.MODE_PRIVATE); //私有數(shù)據(jù)return sharedPreferences.getString("userId", "");}
在需要緩存的地方調(diào)用utils.saveUserId(xx,xx) ,獲取的地方直接調(diào)用utils.getUserId()
這樣也很方便記憶 ,緩存什么,寫(xiě)一個(gè)名字自己記憶,,, 如果要私有數(shù)據(jù),記得在區(qū)分名字即可,我一般的處理
是后臺(tái)添加手機(jī)號(hào)之類的。
希望幫助了您。。。。。。。。。。。。。。。。。。。。。。
?
?
?
?
?
總結(jié)
以上是生活随笔為你收集整理的Android SharedPreferences 的使用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 尾径30以上的柏树原木要多少钱一立方
- 下一篇: 小海蒂作者是谁啊?