針對OkHttp的封裝庫
OkHttpFinal簡介
- 簡化OkHttp使用
- 支持Activity和Fragment生命周期結束后終止請求
- 添加了DownloadManager功能
- 下載多事件回調
- JSON反射輕松拿到結果
- …… </ul>
OkHttpFinal使用方法:
OkHttpFinal接口請求:
RequestParams params = new RequestParams(); params.put("username", mUserName); params.put("password", mPassword); params.put("file", file); params.put("image", inputstream); params.put(Constants.Params.HTTP_TASK_KEY, HTTP_TASK_KEY); params.putHeader("token", token); HttpRequest.request(Api.LOGIN, params, new BaseHttpRequestCallback<LoginResponse>() {@Override public void onStart() { super.onStart(); buildProgressDialog().show(); } @Override public void onSuccess(LoginResponse loginResponse) { super.onSuccess(loginResponse); toast("登錄成功"); } @Override public void onFailed(LoginResponse loginResponse) { super.onFailed(loginResponse); toast(loginResponse.getMessage()); } @Override public void onException(int errorCode, String msg) { super.onException(errorCode, msg); toast("網絡異常~,請檢查你的網絡是否連接后再試"); } @Override public void onFinish() { super.onFinish(); dismissProgressDialog(); } });</pre><br />
Activity或Frament生命周期介紹后銷毀頁面所有正在執行的請求
//在BaseActivity或BaseFragment中添加字段 protected final String HTTP_TASKKEY = "HttpTaskKey" + hashCode();//請求參數中添加key RequestParams params = new RequestParams(); params.put(Constants.Params.HTTP_TASK_KEY, HTTP_TASK_KEY);
//在BaseActivity和BaseFragment銷毀方法中添加 HttpTaskHandler.getInstance().removeTask(HTTP_TASK_KEY);</pre>
OKHttpFinal下載文件:
-
添加下載
DownloadInfo dlTaskInfo = new DownloadInfo(); dlTaskInfo.setAppName(mGameData.getName()); dlTaskInfo.setUrl(url); dlTaskInfo.setLogo(mGameData.getIconUrl()); dlTaskInfo.setPackageName(mGameData.getPackageName()); dlTaskInfo.setGameId(mGameData.getId()); DownloadManager.getInstance(this).addTask(dlTaskInfo, null);
-
暫停下載
DownloadManager.getInstance(this).stopTask(info.getUrl());
-
繼續下載
DownloadManager.getInstance(this).restartTask(info.getUrl());
-
添加事件回調
DownloadManager.getInstance(this).addTaskListener(url, new DownloadListener() { @Override public void onProgress(DownloadInfo downloadInfo) { super.onProgress(downloadInfo); holder.mTvOperate.setText("暫停"); holder.mTvDownloadState.setText("下載中"); holder.mNumberProgressBar.setProgress(downloadInfo.getProgress()); String downladScale = StringUtils.generateFileSize(downloadInfo.getDownloadLength()) + "/" + StringUtils.generateFileSize(downloadInfo.getTotalLength()); holder.mTvDownloadScale.setText(downladScale); holder.mTvDownloadSpeed.setText(StringUtils.generateFileSize(downloadInfo.getNetworkSpeed())); } @Override public void onError(DownloadInfo downloadInfo) { super.onError(downloadInfo); holder.mTvOperate.setText("繼續"); holder.mTvDownloadState.setText("已暫停"); } @Override public void onFinish(DownloadInfo downloadInfo) { super.onFinish(downloadInfo); holder.mTvDownloadState.setText("下載完成"); holder.mTvOperate.setText("安裝"); } });
添加全局事件回調java DownloadManager.getInstance(this).setGlobalDownloadListener(new DownloadListener());...
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!