如何解决像这样的“新AsyncTask <Exercise,Void,Void>”这样的匿名AsyncTask中的构造方法?
把所有工作都放在代码中某个地方的AsyncTask类中,这确实让我很痛苦,但是代码无法执行,我希望他可以执行。
我以前使用new AsyncTask<Void,Void,Void>(){}
函数将代码放在我期望的位置,并且每个人都可以正常使用。
如果我想将AsyncTask与父类的变量一起使用,它会警告我可能发生内存泄漏。
在此匿名AsyncTask中是否可以使用构造函数?我认为没有,但是如果有一种方法可以将代码保留在适当的位置,但是可以将变量传递到异步任务中,那将非常好。
也许是这样的:
AsyncTask<Exercise,Void> insert = new AsyncTask <Exercise,Void>(){
private Exercise mExercise;
public AsyncTask(Exercise exercise){
mExercise = exercise;
}
@Override
protected Void doInBackground(Exercise... exercises) {
mExerciseDAO.insertExercise(exercises[0]);
return null;
}
};
解决方法
以下是将您的Exercise参数传递给匿名AsyncTask的方法:
new AsyncTask<Void,Void,Void>(){
Exercise mExercise;
@Override
protected Void doInBackground(Void... params) {
// Your code ...
mExerciseDAO.insertExercise(this.mExercise);
return null;
}
public AsyncTask setExercise (Exercise exercise){
this.mExercise = exercise;
return this;
}
}.setExercise(exercise).execute();
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。