[英]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.