如何运行多个AsyncTask?
我有2个旋转器, 使用 AsyncTask 从数据库加载每个微调器的数据,
我使用此调用 AsyncTasks
new PopulateSpinnerA().execute();
如果我只为一个微调器调用一个 AsyncTask,它就可以工作
但是!
我有 2 个 Spinner,所以我为每个 Spinner 调用 AsyncTask,就像这样
new PopulateSpinnerA().execute(); // for Spinner A
new PopulateSpinnerB().execute(); // for Spinner B
我运行它并且我的应用程序强制关闭
解决方案?
更新!
我从下面的人那里得到了灵感,他们用真假来回答
我使用布尔值(玩真假)来使我的两个旋转器生成,
首先我创建一个布尔变量,
Boolean SPN = false;
然后我创建一个函数检查布尔值并将其放在
private void cek(){
if(!SPN){
new populateSpinnerA().execute();
}
if(SPN){
new populateSpinnerB().execute();
}
}
populateSpinnerA() 上的 onCreate() 函数上,我只是将这两行代码放在运行第二个微调器的 AsyncTask
SPN = true;
cek();
和
BOOM!
完成了:D
I have 2 spinner,
each spinner's data loaded from database using AsyncTask
i call the AsyncTasks using this
new PopulateSpinnerA().execute();
it works if i only call one AsyncTask for one Spinner
BUT!
i have 2 Spinners, so i call the AsyncTask for each Spinner like this
new PopulateSpinnerA().execute(); // for Spinner A
new PopulateSpinnerB().execute(); // for Spinner B
I run it and my app force close
solution?
UPDATE!
i get inspiration from someone below who answer with true and false
im using a boolean (playing with true and false) to make my two spinners generated
first i make a boolean variable
Boolean SPN = false;
then i make a function to check the boolean and put it on onCreate() function
private void cek(){
if(!SPN){
new populateSpinnerA().execute();
}
if(SPN){
new populateSpinnerB().execute();
}
}
on populateSpinnerA() i just put this 2 lines to run the second spinner's AsyncTask
SPN = true;
cek();
and
BOOM!
it's done :D
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您不能同时拥有两个旋转器。在这种情况下需要使用任何技巧,
请参阅下面的伪代码。
PS - 如果您不知道哪个 AsyncTask 将首先启动,您可以在那里使用相同的机制。
You can not have two spinner at a time. Need to use any trick in this case,
Refer below pseudo code.
P.S. - In case you are not aware which AsyncTask will initiate first, you can use same mechanism over there.