有这么一个场景
一个需要多个步骤的且占用大量时间的I/O操作在App初始化的时候进行。
想请问大家,这么一个操作,是用事件驱动(如Android中的Handler,iOS中的NotificationCenter),还是直接使用回调函数好。
因为这个操作有很多步骤,第一步做好后,开始第二步,第二步完成后,开始第三步,以此类推。因为是I/O操作,所以他们应该都在异步线程里。
现在我所用的方式是在每一个步骤的回调中开始下一步任务,但是这么写感觉很怪异,大家都是怎么做的呢?
class MyTask extends AsyncTask<Void, Integer, Integer> {
public void doInBackground(Void... params) {
// step 1
int resultCode = step1();
if (resultCode == 0) {
// 失败
cancel(true);
return;
}
publishProgress(1);
// ...
}
public void onCancelled() {
// 某一步失败了取消
}
public void onProgressUpdate(Integer... progress) {
// 自定义的阶段
}
}
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。