我正在使用AsyncTask,并且在doInBackground方法内部运行线程,是不是AsyncTask的目的是让所有代码在doInBackground内完成执行,然后转到PostExecute?那么为什么我的一些线程在PostExecution中的代码块启动之后运行?在执行PostExecution后,doInBackground中的AsycTask线程开始运行
我该怎么做才能解决这个问题?
public class myActivity{
@Override
protected void onCreate(Bundle savedInstanceState) {
...
}
@Override
public void onClick(View view) {
new myTask().execute();
}
class myTask extends AsyncTask<Void, Void, Void> {
Boolean success;
@Override
protected void onPreExecute() {
success = true
}
@Override
protected Void doInBackground(Void... params) {
try {
Callback callback = new Callback() {
public void successCallback(String name, Object response) {
}
public void errorCallback(String name, error) {
success = false;}
};
} catch (Exception e) {
success = false;
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(Void aVoid) {
if (success == true){
// do something
}
}
}
}
它在错误回调中,我希望成功字段更改为false。但是,错误回调在postExecute方法之后运行。
发布您的代码。这个问题还不清楚。 – RogueBaneling
该问题收到了否定答复,但我没有得到任何有用的建议 – ktk