package com.lzy.demo.okrx; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.TextView; import com.lzy.demo.R; import com.lzy.demo.base.BaseRxDetailActivity; import com.lzy.demo.ui.NumberProgressBar; import java.io.File; import butterknife.Bind; import butterknife.ButterKnife; import butterknife.OnClick; import rx.android.schedulers.AndroidSchedulers; import rx.functions.Action0; import rx.functions.Action1; public class RxFileDownloadActivity extends BaseRxDetailActivity { @Bind(R.id.fileDownload) Button btnFileDownload; @Bind(R.id.downloadSize) TextView tvDownloadSize; @Bind(R.id.tvProgress) TextView tvProgress; @Bind(R.id.netSpeed) TextView tvNetSpeed; @Bind(R.id.pbProgress) NumberProgressBar pbProgress; @Override protected void onActivityCreate(Bundle savedInstanceState) { setContentView(R.layout.activity_file_download); ButterKnife.bind(this); setTitle("文件下载"); } @Override protected void onDestroy() { super.onDestroy(); //Activity销毁时,取消网络请求 unSubscribe(); } @OnClick(R.id.fileDownload) public void fileDownload(View view) { ServerApi.getFile("aaa", "bbb")// .doOnSubscribe(new Action0() { @Override public void call() { btnFileDownload.setText("正在下载中...\n使用Rx方式做进度监听稍显麻烦,推荐使用回调方式"); } })// .observeOn(AndroidSchedulers.mainThread())// .subscribe(new Action1<File>() { @Override public void call(File file) { btnFileDownload.setText("下载完成"); handleResponse(file, null, null); } }, new Action1<Throwable>() { @Override public void call(Throwable throwable) { throwable.printStackTrace(); btnFileDownload.setText("下载出错"); showToast("请求失败"); handleError(null, null); } }); } }