用过AsyncTask的都知道,AsyncTask是为了在异步线程执行耗时任务以免阻塞UI线程而设计的。但是在使用过程中发现它存在一些缺点: 1. 个人感觉AsyncTask学习成本有点高,因为它带三个泛型参数,学习成本略微有点高; 2. AsyncTask在Activity中使用不注意容易造成内存泄露,因为AsyncTask时常被用作Activity的内部类来使用,有时由于某些原因造成异步任务的执行时间长达几十秒甚至更长,当页面关闭时,异步任务没结束并对Activity持有引用,Activity不能被及时回收,导致内存泄露。 3. AsyncTask未绑定生命周期,并不能自行根据生命周期结束异步任务,只能人为结束任务。 由于AsyncTask存在这些缺点,所以想自己实现一个轻量级的AsyncTask。