使用Task时,有时只是希望简单的后台运行,甚至不需要理会任何结果。而直接继承AsyncTask所要写的东西,我是感觉蛮多的。所以想办法定义一个简单好用的封装子类。
我是把这个都集成到了BaseActivity里,调用比较自由且简单。
主要分两部分:
任务执行方法
任务实例
注意 因为Android非静态Task时,Task和Activity相互持有,有可能导致内存泄露,这里使用static,到时候使用时看情况取舍了。
public static abstract class Task extends AsyncTask<Void, String, Void> {
protected abstract void run();
protected void post() {
}
@Override
protected Void doInBackground(Void... voids) {
try {
run();
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(Void voids) {
post();
}
}
public void execTask(Task task) {
task.execute();
}
以上对Task进行了一个简单的封装。
简单用法
execTask(new Task() {
@Override
protected void run() {
}
});
尊重作者,转载请注明出处!
版权申明:本文版权归作者所有,未经授权,任何单位或个人不得以任何形式转载、摘编或利用其它方式使用本博客内容。作者保留追究相关法律责任的权利。如需使用博客内容,请与作者联系获得授权。感谢对本文的尊重与支持。
免责声明:本网站所载内容仅供参考,不构成任何专业建议。用户基于本网站内容作出的决策,风险自担。对于因使用本网站内容而产生的任何直接或间接损失,本网站不承担任何责任。请用户审慎判断,理性使用。