我正在尝试同步运行两个 AsyncTask。
AsyncTask task1 = new AsyncTask<Void, Void, String>() {
//First task here
};
AsyncTask task2 = new AsyncTask<Void, Void, String>() {
//Second task here
};
为了强调任务完美运行,我尝试以相同的方式将它们直接放置在 onCreate 函数中:
AsyncTask task1 = new AsyncTask<Void, Void, String>() {
//First task here
}.execute();
AsyncTask task2 = new AsyncTask<Void, Void, String>() {
//Second task here
}.execute();
但问题是这些任务是一起开始的,而不是一个接一个地开始。所以我尝试将它们放在 onCreate 函数之外,然后根据此方法调用它们,以便同步工作:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
task1.execute();
if(task1.getStatus() == AsyncTask.Status.FINISHED){
task2.execute();
}
}
这里我从 Android Studio 收到一个错误:“未检查调用‘execute(Params...)’作为原始类型‘android.os.AsyncTask’的成员”。
怎么了?我如何解决它?或者同步这两个任务的另一种方法是什么?
最佳答案
为什么不在第一个 AsyncTask 的 onPostExecute
方法中启动第二个 AsyncTask?
未经检查的调用可能是由于类型检查造成的。将您的声明更改为:
AsyncTask<Void, Void, String> task1 = ...;
AsyncTask<Void, Void, String> task2 = ...;
关于Java/Android - AsyncTask 执行,尝试运行同步任务,未经检查的调用 "execute(params)",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31688514/