国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Android - Android實現離線緩存的方法

Android實現離線緩存的方法

2021-06-28 16:05Leo.Han Android

離線緩存就是在網絡暢通的情況下將從服務器收到的數據保存到本地,當網絡斷開之后直接讀取本地文件中的數據。本文給大家介紹Android實現離線緩存的方法,需要的朋友參考下

 離線緩存就是在網絡暢通的情況下將從服務器收到的數據保存到本地,當網絡斷開之后直接讀取本地文件中的數據。如json 數據緩存到本地,在斷網的狀態下啟動app時讀取本地緩存數據顯示在界面上,常用的app(網易新聞、知乎等等)都是支持離線緩存的,這樣帶來了更好的用戶體驗。

如果能夠在調用網絡接口后自動緩存返回的json數據,下次在斷網狀態下調用這個接口獲取到緩存的json數據的話,那該多好呢?volley做到了這一點。

因此,今天這篇文章介紹的就是使用volley自帶的數據緩存,配合universal-imageloader的圖片緩存,實現斷網狀態下的圖文顯示。

實現效果

Android實現離線緩存的方法

如何實現?

1.使用volley訪問網絡接口

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
/**
* 獲取網絡數據
*/
private void getdata() {
stringrequest stringrequest = new stringrequest(request.method.post, test_api, new response.listener<string>() {
@override
public void onresponse(string s) {
textview.settext("data from internet: " + s);
try {
jsonobject jsonobject = new jsonobject(s);
jsonarray resultlist = jsonobject.getjsonarray("resultlist");
jsonobject jsonobject = (org.json.jsonobject) resultlist.opt(0);
string head_img = jsonobject.getstring("head_img");
imageloader.getinstance().displayimage(head_img, imageview);
} catch (jsonexception e) {
e.printstacktrace();
}
}
}, new response.errorlistener() {
@override
public void onerrorresponse(volleyerror volleyerror) {
}
}) {
@override
protected map<string, string> getparams() throws authfailureerror {
map<string, string> map = new hashmap<string, string>();
map.put("phone", "15962203803");
map.put("password", "123456");
return map;
}
};
queue.add(stringrequest);
}

當接口訪問成功以后,volley會自動緩存此次紀錄在/data/data/{package name}/cache/volley文件夾中。

Android實現離線緩存的方法

打開上面的文件,可以發現接口的路徑和返回值都被保存在該文件里面了。

Android實現離線緩存的方法

當在斷網狀態時,如何獲取到該接口的緩存的返回值呢?
使用requestqueue提供的getcache()方法查詢該接口的緩存數據

?
1
2
if (queue.getcache().get(test_api) != null) {
string cachedresponse = new string(queue.getcache().get(test_api).data);

2.使用universal-imageloader加載圖片

?
1
imageloader.getinstance().displayimage(head_img, imageview);

注意點

1.觀察上面的緩存文件可以發現,volley只緩存了接口路徑,并沒有緩存接口的傳入參數,因此如果做分頁查詢的話,使用此方法是不妥的。

2.在測試過程中,依然發現有的時候獲取不到緩存數據,有的時候卻可以獲取到。對獲取緩存的代碼延遲加載能夠有效解決這個問題。

3.如果考慮到緩存的過期策略,可以使用更好的asimplecache框架輔助開發。對緩存有更高要求的app,依然應該使用文件緩存或數據庫緩存。

以上內容是小編給大家介紹的android實現離線緩存的方法,希望對大家有所幫助!

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 黄色永久网站 | 亚洲va中文字幕 | 国产一区二区三区欧美 | 中文在线视频 | 偷拍做爰吃奶视频免费看 | 久久九九国产精品 | 久久亚洲欧美日韩精品专区 | 欧美三级网址 | 色婷婷一二三 | 黄在线看 | 久久久91 | 国产精品综合视频 | 九九综合 | 午夜精品久久久久久久男人的天堂 | 午夜影院在线 | 日韩综合在线 | 精品久久ai | 国产成年人网站 | 国产精品亚洲一区二区三区 | av久久 | 国产精品久久精品 | 超碰91在线 | 午夜视频在线播放 | 精品久久精品久久 | а√天堂中文在线资源8 | 高清av电影 | 精品国产一区二区三区日日嗨 | 91视频观看| 亚洲精品乱码久久久久久蜜糖图片 | 国产欧美日韩一区二区三区四区 | 色婷婷综合久久久中字幕精品久久 | 久久99精品久久久久久国产越南 | 中文字幕亚洲欧美 | 久久精品噜噜噜成人av农村 | 久久久亚洲成人 | 亚洲网站免费 | 日韩视频免费 | 黄视频免费观看 | 一区二区三区四区精品 | 国产欧美视频在线 | 欧美日韩视频一区二区 |