1. 编写接口
public interface DownloadCallback {    void startDownload();    void updateProgress(int progress);    void finishedDownload();}
  1. 编写事件源
    public class HttpUtil {    private Timer mTimer;    private TimerTask mTimerTask;    private DownloadCallback mCallback;    public void setCallback(DownloadCallback callback) {        this.mCallback = callback;    }    public HttpUtil() {        mTimer = new Timer();        mTimerTask = new TimerTask() {            int i = 0;            @Override            public void run() {                if (i < 100) {                    mCallback.updateProgress(i++);                } else {                    mCallback.finishedDownload();                    mTimer.cancel();                } } };    }    public void donwload() {        mCallback.startDownload();        mTimer.schedule(mTimerTask, 1000, 50);    }}
  2. 设置事件
    public class DownloadActivity extends Activity implements DownloadCallback {    private HttpUtil mHttpUtil;    private final String TAG = DownloadActivity.class.getSimpleName();    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_download);  mHttpUtil = new HttpUtil();        mHttpUtil.setCallback(this);    }    @Override    public void startDownload() {        Log.i(TAG, "开始下载");    }    @Override    public void updateProgress(int progress) {        Log.i(TAG, "已下载" + progress + "%");    }    @Override    public void finishedDownload() {        Log.i(TAG, "下载完成");    }}```
  3. 触发事件
       @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_download);        downloadBtn = findViewById(R.id.btn_download);        mHttpUtil = new HttpUtil();        mHttpUtil.setCallback(this);        downloadBtn.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                mHttpUtil.donwload();            }        });    }
  4. 查看效果

更多相关文章

  1. Android(安卓)使用AsyncHttpClient文件上传与下载
  2. ADT下载地址整理
  3. android onTouch()与onTouchEvent()的区别
  4. android使用CheckedTextView搭配listview完成选择列表
  5. 最新版 Android(安卓)SDK 无法获取SDK包 的解决方案
  6. Android(安卓)如何获取keyboard和TP消息 分享
  7. Android基础入门教程——1.2.2 使用Android(安卓)Studio开发Andr
  8. android WebView总结
  9. Linux/Android——input系统之 kernel层 与 frameworks层交互 (

随机推荐

  1. android中使用ViewPager实现图片左右拖动
  2. Android中使用官方提供好的功能使用说明(
  3. 如何解决恶意APK中常见的Native代码加壳
  4. Android:使用Handler在线程之间通信
  5. Android逆向之旅---静态分析技术来破解Ap
  6. android ios wp三大平台神器软件分享
  7. Android(安卓)数据存取试验 (一)
  8. android上传大文件亲测可用,上传200M个文
  9. Android(安卓)实现形态各异的双向侧滑菜
  10. 应用跳转(Deep Link)