針對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 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!