package com.android.caij.xutilsdemo.fragment; import java.io.File; import android.os.Bundle; import android.os.Environment; import android.support.annotation.Nullable; import android.support.v4.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.Button; import android.widget.ProgressBar; import android.widget.Toast; import com.android.caij.xutilsdemo.R; import com.lidroid.xutils.HttpUtils; import com.lidroid.xutils.ViewUtils; import com.lidroid.xutils.exception.HttpException; import com.lidroid.xutils.http.HttpHandler; import com.lidroid.xutils.http.ResponseInfo; import com.lidroid.xutils.http.callback.RequestCallBack; import com.lidroid.xutils.view.annotation.ViewInject; import com.lidroid.xutils.view.annotation.event.OnClick; public class DownFragment extends Fragment { @ViewInject(R.id.start) private Button start; @ViewInject(R.id.pb_seek) private ProgressBar progressBar; private HttpUtils http; private static final String URL = "http://apps.lidroid.com/apiv2/dl/0000000/com.lidroid.fileexplorer"; private HttpHandler<File> handler; @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view = inflater.inflate(R.layout.down_fragment_view, container, false); ViewUtils.inject(this, view); http = new HttpUtils(); return view; } @OnClick(R.id.start) public void start(View view) { if (handler == null || handler.isCancelled()) { handler = http.download(URL, Environment.getExternalStorageDirectory().getAbsolutePath() + "/test.apk", true, // 如果目标文件存在,接着未完成的部分继续下载。服务器不支持RANGE时将从新下载。 false, // 如果从请求返回信息中获取到文件名,下载完成后自动重命名。 new RequestCallBack<File>() { @Override public void onLoading(long total, long current, boolean isUploading) { super.onLoading(total, current, isUploading); progressBar.setMax((int) total); progressBar.setProgress((int) current); } @Override public void onSuccess(ResponseInfo<File> responseInfo) { Toast.makeText(getActivity(), "下载成功", Toast.LENGTH_SHORT).show(); progressBar.setProgress(0); start.setText("开始"); } @Override public void onFailure(HttpException error, String msg) { Toast.makeText(getActivity(), "下载失败" + msg, Toast.LENGTH_SHORT).show(); start.setText("开始"); } }); start.setText("暂停"); } else { handler.cancel(); start.setText("开始"); } } }