2015-03-03 31 views
0

我正在编写一个应用程序,它可以从多个源执行多次JSON数据下载。每个下载都使用回调方法异步完成。如何处理IntentService中的多个异步内部问题

我的想法是使用IntentService,因为我希望所有的数据处理都在同一个线程上运行,并且同时调用所有的异步下载。但是,由于IntentService一旦完成运行onHandleIntent就会停止,不会,我该如何让它等待所有的异步下载完成?这就是我的onHandleIntent方法看起来

@Override 
    protected void onHandleIntent(Intent intent) { 
     asyncTaskAWithCallback{ 
      //some handling of data 
     } 
     asyncTaskBWithCallback{ 
      //some handling of data 
     } 

     ... 

     asyncTaskNWithCallback{ 
      //some handling of data 
     } 
     //Some code to wait for all callbacks to finish? 
    } 
+3

我建议你用自己的线程管理创建自己的'Service',在那里你可以更好地实现你自己的规则。 – CommonsWare 2015-03-03 13:56:08

回答

0

我结束了创建一个Service代替一个IntentService就像CommonWare在评论中建议的一样。在此之后example并将数据的处理放入单独的线程中。

0

添加一个循环,等待一个计数器来达到你的异步操作的价值数 ,让每一个异步增加这个数onPOST等

+0

不幸的是,异步回调从未被调用过。 – Nilsymbol 2015-03-04 12:03:25

+0

它从来没有叫过! – 2015-03-04 13:12:30

+0

你确定你叫async.execute()? – 2015-03-04 13:13:05