有時候我們需要通過自己的緩存機制來緩存網(wǎng)頁內(nèi)容,當(dāng)沒有網(wǎng)的時候顯示本地的緩存,當(dāng)有網(wǎng)的時候取最新的繼續(xù)緩存到本地。
創(chuàng)新互聯(lián),為您提供重慶網(wǎng)站建設(shè)公司、成都網(wǎng)站制作、網(wǎng)站營銷推廣、網(wǎng)站開發(fā)設(shè)計,對服務(wù)陽臺護(hù)欄等多個行業(yè)擁有豐富的網(wǎng)站建設(shè)及推廣經(jīng)驗。創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司成立于2013年,提供專業(yè)網(wǎng)站制作報價服務(wù),我們深知市場的競爭激烈,認(rèn)真對待每位客戶,為客戶提供賞心悅目的作品。 與客戶共同發(fā)展進(jìn)步,是我們永遠(yuǎn)的責(zé)任!主要機制:
通過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; } }