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. 查看效果
    Android中回调下载事件处理实现步骤_第1张图片

更多相关文章

  1. Android 设置DrawableRight和DrawableLeft 点击事件
  2. Android touch事件一种解释
  3. Android Touch事件传递机制引发的血案
  4. android数字证书-签名(步骤)
  5. Android(Java):Android 事件分发机制
  6. android 回车键事件编程
  7. Android 事件分发机制源码
  8. android 回车键事件

随机推荐

  1. LinearLayout设置
  2. Android Studio 编译不通过,报错“找不到o
  3. Android 编程下的日志工具类
  4. android 机顶盒Launcher开发
  5. android应用程序制定皮肤
  6. Android更换RatingBar图片
  7. Android日志服务例子,将日志保存在文件中
  8. Android (滑动屏幕切换图片的实现)
  9. Android(安卓)系统固定Launcher的方法
  10. Android之获取、设置EditText的文本