有時候我們需要通過自己的緩存機制來緩存網(wǎng)頁內(nèi)容,當沒有網(wǎng)的時候顯示本地的緩存,當有網(wǎng)的時候取最新的繼續(xù)緩存到本地。
創(chuàng)新互聯(lián)建站主營黃平網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,app開發(fā)定制,黃平h5微信小程序搭建,黃平網(wǎng)站營銷推廣歡迎黃平等地區(qū)企業(yè)咨詢
主要機制:
通過AsyncTask異步AsyncTask請求,將得到的response.body()緩存起來。
主要代碼如下:
//通過OkHttpClient加載html的方式先判斷網(wǎng)頁是否能走通 class WebViewStatusRequester extends AsyncTask{ String url; @Override protected void onPreExecute() { super.onPreExecute(); } @Override protected void onPostExecute(Integer result) { super.onPostExecute(result); result = 0; Log.e(TAG, "onPostExecute: result="+result +";url="+url); if(result == 1) { m_commonIssueWebview.loadUrl(url); } else if(result == 0) { getCacheHtmlStrategy(); } } @Override protected Integer doInBackground(String... params) { url = params[0]; try { OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder().url(url).build(); Response response = client.newCall(request).execute(); //緩存到本地文件 FileUtil.writeFile(PathConfig.getQAHtmlCachePath(getActivity()),response.body().string()); if(response.isSuccessful()) { return 1; } else { Log.i("TAG", "fail code:" + response.code()); return 0; } } catch (IOException e) { e.printStackTrace(); } return 0; } }
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持創(chuàng)新互聯(lián)。