緩存AsimpleCache -- 解決Android中Sharedpreferences無法存儲List數據/ASimpleCache


 

Sharedpreferences想必大家在項目中都經常會用到,但是如果需要在本地需要存儲比較多的數據,存儲一個集合的時,發現Sharedpreferences並不

是那么好使了。

分析

如果需要在本地種存儲上圖中的數據,顯而易見的是一個List中存儲多個對象,使用Sharedpreferences有局限性,

使用Sqlite個人感覺比較麻煩。

 

 解決方案

 

推薦一款輕量級的Android緩存框架:ASimpleCache ,github開源項目(國人寫的哦) 地址

拷貝下官方說明:

ASimpleCache 是一個為android制定的 輕量級的 開源緩存框架。輕量到只有一個Java文件(由十幾個類精簡而來)。

 

1、它可以緩存什么東西?

普通的字符串、JsonObject、JsonArray、Bitmap、Drawable、序列化的java對象,和 byte數據。
 

2、它有什么特色?

特色主要是:
  • 1:輕,輕到只有一個JAVA文件。
  • 2:可配置,可以配置緩存路徑,緩存大小,緩存數量等。
  • 3:可以設置緩存超時時間,緩存超時自動失效,並被刪除。
  • 4:支持多進程。

3、它在android中可以用在哪些場景?

  • 1、替換SharePreference當做配置文件
  • 2、可以緩存網絡請求數據,比如oschina的android客戶端可以緩存http請求的新聞內容,緩存時間假設為1個小時,超時后自動失效,讓客戶端重新請求新的數據,減少客戶端流量,同時減少服務器並發量。
  • 3、您來說...

4、如何使用 ASimpleCache?

以下有個小的demo,希望您能喜歡:

ACache mCache = ACache.get(this); mCache.put("test_key1", "test value"); mCache.put("test_key2", "test value", 10);//保存10秒,如果超過10秒去獲取這個key,將為null mCache.put("test_key3", "test value", 2 * ACache.TIME_DAY);//保存兩天,如果超過兩天去獲取這個key,將為null

獲取數據

ACache mCache = ACache.get(this); String value = mCache.getAsString("test_key1");
 
官方中並沒有提到怎么來存儲List,摸索了一下分享給大家:
 
代碼:
 
存入本地

 

 

[java]  view plain  copy
 
  1. ACache aCache = ACache.get(mContext);  
  2.                     //只能使用List的子類  
  3.                     ArrayList<CarLocation> arrayList = new ArrayList();  
  4.                     //注意:一定要序列化  
  5.                     CarLocation carLocation = new CarLocation();  
  6.                     carLocation.setTitle("測試");  
  7.                     arrayList.add(carLocation);  
  8.                     aCache.put("car", arrayList);  

 

取出

[java]  view plain  copy
  1. ACache aCache = ACache.get(activity);  
  2.            //使用getAsObject(),直接進行強轉  
  3.            ArrayList<CarLocation> carLocations = (ArrayList<CarLocation>) aCache.getAsObject("car");  



 

 

使用ACache只需要一個類即可 :點擊打開鏈接

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM