Android 在取消另一个任务后执行异步任务
我有以下问题: 我的程序必须运行两个异步任务(一个接一个,决不能同时运行),其中一个将通过蓝牙进行套接字通信,另一个将通过WIFI进行通信。 所以我所做的是:Android 在取消另一个任务后执行异步任务,android,android-asynctask,Android,Android Asynctask,我有以下问题: 我的程序必须运行两个异步任务(一个接一个,决不能同时运行),其中一个将通过蓝牙进行套接字通信,另一个将通过WIFI进行通信。 所以我所做的是: if (bluetoothConnexion.closeBTConnexion()){ mainContext.startUDPTask(); } public Boolean closeBTConnexion() { if
if (bluetoothConnexion.closeBTConnexion()){
mainContext.startUDPTask();
}
public Boolean closeBTConnexion() {
if (bluetoothServerTask != null){
bluetoothServerTask.cancel(true);
return bluetoothServerTask.isCancelled();
}
else
return true;
}
因此,我在蓝牙任务被取消时执行UDPtask,但我面临两个问题:
非常感谢 如果您想串行执行它们,可以尝试使用串行执行器 应该是这样的:
bluetoothServerTask.executeOnExecutor(AsyncTask.SERIAL_EXECUTOR);
然后,您可以使用
udpTask.executeOnExecutor(AsyncTask.SERIAL_EXECUTOR);
这样,udpTask将仅在bluetoothServerTask完成时运行。感谢您的响应,我尝试了串行执行器,但我的问题一直是无法访问任务的oncancelled()方法。我认为这是因为我正在尝试从BroadcastReceiver onReceive()事件中取消它,有没有理由不从BroadcastReceiver取消异步任务?