2012-03-21 95 views
1

我有一个活动,需要进行两个远程服务器调用。首先是简单的,当页面加载时,我只是打电话来获取一些数据并显示它......没问题。Android - 如何在一个Activity中创建两个异步调用?

问题发生在第二次调用中,因为一旦我调用sendFeedback,它会尝试执行任务,但doInBackground()方法是针对原始调用编写的,因此参数将不起作用,并且函数当从远程呼叫返回数据时调用的呼叫对于两个呼叫都不相同。

在我需要从一个活动进行两个不同的远程呼叫的情况下,通常会做什么?

谢谢!

+2

为什么你不能创建一个全新的Async任务类? – dymmeh 2012-03-21 17:51:26

+0

它们是否都在同一时间运行? – sdfwer 2012-03-21 17:57:13

回答

3

正如dophh表明的,只需使用两个不同的AsyncTask子类。

+0

@kabko谢谢,但我怎么做两个AsyncTask子类?我的意思是,如何在需要时称呼一个班级,而不是另一个班级? :) 谢谢! – GeekedOut 2012-03-21 18:10:49

+0

我不确定混淆的地方。你是如何制作一个AsyncTask子类的?为第二个做类似的事情。如果你发布了一些代码或者伪代码来说明你现在拥有的更具体的东西,也许它会为我们所有人清除一些东西。 – kabuko 2012-03-21 18:14:24

+0

@kabko什么我不清楚是我是否应该有这两个声明:公共类DownloadWebPageTask扩展的AsyncTask <字符串,太虚,字符串> – GeekedOut 2012-03-21 18:19:28

2

我不能完全跟着你想要什么,但我认为你说你想在序列中的两个异步调用与第二取决于第一。

如果我的理解是正确的,从第一个的onPostExecute()方法开始第二个AsyncTask

2

只需在需要它们的地方创建2个AsyncTask。

new AsyncTask<String, Void, Object>() { 
     @Override 
     protected Object doInBackground(String... params) { 
        // put task here 

     } 

     @Override 
     protected void onPostExecute(Object result) { 
      super.onPostExecute(result); 

     } 
    }; 
相关问题