[英]How to run multiple AsyncTask?
我有 2 个微调器,每个微调器的数据使用 AsyncTask 从数据库加载
我用这个调用 AsyncTasks
new PopulateSpinnerA().execute();
如果我只为一个 Spinner 调用一个 AsyncTask,它就可以工作
但!
我有 2 个 Spinner,所以我像这样为每个 Spinner 调用 AsyncTask
new PopulateSpinnerA().execute(); // for Spinner A
new PopulateSpinnerB().execute(); // for Spinner B
我运行它并且我的应用程序强制关闭
解决方案?
更新!
我从下面回答真假的人那里得到灵感
我使用 boolean(玩弄真假)来生成我的两个微调器
首先我做一个 boolean 变量
Boolean SPN = false;
然后我制作一个 function 来检查 boolean 并将其放在 onCreate() function
private void cek(){
if(!SPN){
new populateSpinnerA().execute();
}
if(SPN){
new populateSpinnerB().execute();
}
}
在 populateSpinnerA() 我只是把这 2 行来运行第二个微调器的 AsyncTask
SPN = true;
cek();
和
繁荣!
完成了:D
您不能同时拥有两个微调器。 在这种情况下需要使用任何技巧,
参考下面的伪代码。
postExecute(){
If(taskCompletedFlag == true){
//Code to cancel the spinner.
taskCompletedFlag = false;
}else{
taskCompledtedFlag = true;
}
}
PS - 如果您不知道哪个 AsyncTask 将首先启动,您可以在那里使用相同的机制。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.