亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

OkHttp基本使用(四)緩存

2019-11-06 09:44:46
字體:
來源:轉載
供稿:網友
此篇介紹OkHttp的緩存功能,實現無網絡情況下從緩存讀取數據,類似很多新聞類的APP,在沒有網絡的情況下也是可以進入首頁。除了新聞類,可能還有閱讀類的app也需要緩存功能,等等??傊彺嬖趯嶋H項目開發中使用得比較平凡,而如果要我們自己去寫一套緩存邏輯,顯然是很麻煩的。接下來,介紹OkHttp的緩存功能的使用。配置緩存大小和緩存目錄//獲得緩存目錄        File cacheFile = getCacheDir();        okHttpClient = new OkHttpClient                .Builder()                .cache(new Cache(cacheFile,4*1024*1024)) //設置緩存目錄和緩存大小                .build();復制代碼注意:緩存目錄最好是私有緩存。一個APP、一個OkHttpClient對象、一個緩存目錄。再次強調對于項目中的OkHttpClient需要是單例的--官方推薦。強制請求網絡(經過測試,此種方式還是會寫入緩存,只是沒有讀取緩存內容)<div>Request request = new Request.Builder()        .cacheControl(new CacheControl.Builder().noCache().build())//設置不讀取緩存,直接進行網絡請求        .url("http://publicobject.com/helloworld.txt")</div><div>        .build();</div>復制代碼強制讀取緩存。也就是不管緩存是否有數據,都不請求網絡。Request request = new Request.Builder()          .cacheControl(new CacheControl.Builder()              .onlyIfCached()              .build())          .url("http://publicobject.com/helloworld.txt")          .build();      Response forceCacheResponse = client.newCall(request).execute();      if (forceCacheResponse.code() != 504) {        // The resource was cached! Show it.      } else {        // The resource was not cached.      }復制代碼強制讀取緩存的第2中寫法(其實內部代碼和上面的寫法一致):Request request = builder.url(Config.URL).cacheControl(CacheControl.FORCE_CACHE).build();                    Response response1 = okHttpClient.newCall(request).execute();                    String result1 = null;                    if (response1.code() != 504) {                        result1 = response1.body().string();                    } else {                        System.out.PRintln("-androidxx--null");                    }復制代碼強制讀取緩存的測試過程:先成功請求一次,然后將網絡斷開,使用強制取緩存的方式,可以將緩存的結果請求到。沒有網絡自動取緩存(默認方式)Request request = builder.url("https://publicobject.com/helloworld.txt").build();                    Response response1 = okHttpClient.newCall(request).execute();復制代碼OkHttp設置了緩存大小和目錄之后,默認的網絡請求方式是如果沒有網絡或者網絡連接失敗,會返回緩存中的信息。OkHttp獲取緩存信息的源碼:(這是OkHttp中Cache類的源碼中的一部分)Response get(Request request) {    String key = urlToKey(request);    DiskLruCache.Snapshot snapshot;    Entry entry;    try {      snapshot = cache.get(key);      if (snapshot == null) {        return null;      }    } catch (IOException e) {      // Give up because the cache cannot be read.      return null;    }復制代碼通過以上源碼,可以看到有一個大家比較熟悉的類DiskLruCache,這就是一個磁盤緩存的工具類,OkHttp中使用的就是DiskLruCache進行的緩存。      如果想直接取緩存信息,可以將源碼中的Cache類的get方法的限定修飾符改成public,然后可以通過如下方式直接讀取緩存內容:Response response = okHttpClient.cache().get(request);//get方法默認是看不到的,需要修改源碼復制代碼總結1、使用緩存功能,一定要先配置緩存目錄和大小。2、在一般情況下,不需要做額外的配置,OkHttp在沒有網絡的情況下,會自動請求緩存信息。但于此同時,網絡請求失敗會出現異常(已經捕獲),通過異??梢宰鲆恍┻壿嬒嚓P的處理。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲精品自拍第一页| 成人高h视频在线| 亚洲天堂开心观看| 欧美乱人伦中文字幕在线| 456国产精品| 一本色道久久88亚洲综合88| 欧美性一区二区三区| 亚洲精品久久久久国产| 亚洲午夜av久久乱码| 色综合久久天天综线观看| 日韩大片免费观看视频播放| 91久久在线视频| 亚洲福利视频网| 亚洲最大激情中文字幕| 日韩在线观看精品| 91免费国产视频| 日韩成人在线视频网站| 久久91亚洲精品中文字幕| 亚洲精品视频免费在线观看| 欧美一级视频在线观看| 91精品国产91久久久久| 日韩精品视频在线观看网址| 亚洲老头老太hd| 国内精品视频一区| 久久久久久久久久久av| 欧美专区在线观看| 国产欧美精品一区二区三区介绍| 欧美另类极品videosbest最新版本| 97国产真实伦对白精彩视频8| 人人爽久久涩噜噜噜网站| 亚洲人成在线播放| 欧美成人激情视频| 国产婷婷97碰碰久久人人蜜臀| 亚洲福利在线播放| 久久久免费高清电视剧观看| 国产va免费精品高清在线观看| 欧美性视频网站| 97精品国产91久久久久久| 九九热这里只有精品免费看| 国产成人91久久精品| 91精品国产91久久久久久久久| 国产精品最新在线观看| 日韩美女中文字幕| 色综合老司机第九色激情| 欧美成人免费全部观看天天性色| 久久久久久久影视| 亚洲精品国精品久久99热| 午夜精品久久久久久久白皮肤| 亚洲精品免费网站| 国产精品亚洲第一区| 日本精品久久久久影院| 国内精品模特av私拍在线观看| 最新日韩中文字幕| 久久在线精品视频| 国产精品视频一区二区高潮| 亚洲а∨天堂久久精品喷水| 成人av色在线观看| 亚洲精品国产拍免费91在线| 亚洲视频在线免费观看| 欧美洲成人男女午夜视频| 日韩美女在线看| 黑丝美女久久久| 韩国精品久久久999| 国产精品视频永久免费播放| 亚洲欧洲国产伦综合| 亚洲精品成人网| 欧美区在线播放| 日韩亚洲在线观看| 国产精品视频不卡| 国产精品麻豆va在线播放| 欧美国产欧美亚洲国产日韩mv天天看完整| 超薄丝袜一区二区| 久久人人爽人人爽人人片av高清| 午夜精品久久久久久久久久久久| 亚洲精品一区久久久久久| 亚州精品天堂中文字幕| 日韩av中文字幕在线免费观看| 欧美性高跟鞋xxxxhd| 国产欧美精品日韩精品| 欧美激情视频免费观看| 久久精品国产精品亚洲| 欧美精品videofree1080p| 亚洲综合国产精品| 国产精品你懂得| 欧美日韩中文在线| 欧美一级高清免费播放| 欧美中文字幕视频| 亚洲精品国产精品国自产在线| 在线不卡国产精品| 亚洲精品一区久久久久久| 亚洲综合第一页| 国产黑人绿帽在线第一区| 亚洲国产婷婷香蕉久久久久久| 九九热这里只有精品免费看| 性欧美激情精品| 成人妇女淫片aaaa视频| 91精品中文在线| 久久久久久国产精品三级玉女聊斋| 538国产精品视频一区二区| 亚洲国产日韩欧美综合久久| 欧美电影在线观看网站| 久热精品视频在线观看一区| 亚洲视频免费一区| 欧美激情高清视频| 2020欧美日韩在线视频| 91沈先生作品| 久久久久久久久中文字幕| 国产精品欧美日韩| 国产精品美女免费视频| 国产精品露脸av在线| 深夜福利国产精品| 国产精品久久久久久久久久三级| 亚洲国产精品美女| 日韩色av导航| 亚洲国产天堂久久综合网| 伊人久久久久久久久久久久久| 黑人精品xxx一区| 精品欧美激情精品一区| 国产一区二区黄| 8090成年在线看片午夜| 日韩高清电影免费观看完整版| xxxxx成人.com| 亚洲japanese制服美女| 国产91精品高潮白浆喷水| 亚洲午夜av久久乱码| 欧美视频在线观看 亚洲欧| 午夜免费久久久久| 国产精品中文字幕久久久| 日韩视频―中文字幕| 国产一区二区三区欧美| 国产丝袜一区二区| 日韩美女免费观看| 欧美天堂在线观看| 久久视频在线看| 欧美亚洲国产日本| 国内免费久久久久久久久久久| 久久精品国产视频| 欧美日韩午夜剧场| 国产欧美精品久久久| 精品在线观看国产| 97视频在线观看视频免费视频| 日本一区二区在线播放| 日韩美女av在线| 成人乱人伦精品视频在线观看| 欧美激情精品久久久久久久变态| 久久精品欧美视频| 亚洲第一区中文99精品| 成人精品久久一区二区三区| 精品香蕉一区二区三区| 久久五月天综合| 日韩视频永久免费观看| 亚洲精品日韩丝袜精品| 日韩中文字幕国产| 九九热精品在线| 国内精品小视频在线观看| 国产成人亚洲精品| 日本精品久久久久影院| 欧美另类老肥妇| 日本精品一区二区三区在线播放视频| 日韩不卡中文字幕| 国产一区二区在线播放| 欧美大尺度电影在线观看| 国内精品视频在线| 亚洲在线视频观看|