У меня есть 2 счетчика, каждый из данных счетчика, загруженных из базы данных, используя AsyncTask
я вызываю AsyncTasks, используя это
new PopulateSpinnerA().execute();
он работает, если я назову только один AsyncTask для одного Spinner
НО!
У меня есть 2 Spinners, поэтому я называю AsyncTask для каждого Spinner, как это
new PopulateSpinnerA().execute(); // for Spinner A
new PopulateSpinnerB().execute(); // for Spinner B
Я запускаю его, и моя сила приложения закрывается
решение?
ОБНОВИТЬ!
я получаю вдохновение от кого-то ниже, кто отвечает истинным и ложным
im, используя логическое (играя с истинным и ложным), чтобы сделать мои два вращателя
сначала я делаю логическую переменную
Boolean SPN = false;
то я делаю функцию, чтобы проверить логическое и включить его onCreate()
private void cek(){
if(!SPN){
new populateSpinnerA().execute();
}
if(SPN){
new populateSpinnerB().execute();
}
}
on populateSpinnerA() Я просто поставлю эти 2 строки, чтобы запустить второй счетчик AsyncTask
SPN = true;
cek();
а также
БУМ!
это было сделано: D
У вас не может быть двух счетчиков одновременно. Необходимо использовать любой трюк в этом случае,
См. Ниже псевдокод.
postExecute(){
If(taskCompletedFlag == true){
//Code to cancel the spinner.
taskCompletedFlag = false;
}else{
taskCompledtedFlag = true;
}
}
PS - Если вы не знаете, какая инициатива AsyncTask будет инициирована первой, вы можете использовать тот же механизм там.