2012-02-07 8 views
0

こんにちは、私はアンドロイドアプリケーションを開発しています。私はWebサービスを呼び出して、サーバーからデータを取得しています。今私は1つのアクティビティでonCreateメソッドで約15 - 20のWebサービスを呼び出しています。今私は最初のサービスの応答が受信された後、他のWebサービスコールだけが受信されるような方法でコード化したいと思います。しかし、私はそれを維持する方法を知らない。どんな助けや提案も感謝しています。 ありがとうございます。androidのスタックでWebサービスを呼び出す

答えて

0

単純...

あなたはAsyncTaskクラスを使用する必要があります。

  1. 、以下の方法 (I)doinBackground(あなたが最初のAsyncTaskを起動したときに、このメソッドが実行されます) (ⅱ)onPostExecute(doInBackgrounがその作業を完了すると、このメソッドが実行を開始を上書き

  2. このクラスを拡張)

  3. Asyncクラスを実行します。

説明: あなただけdoInBackgroundに呼び出すWebサービスを行うとonPostExecuteで、そのdoinBackgroundに別のサービスコールを持つ別のAsyncTaskを、実行します。

要約:onPostExecuteからAsyncTraskクラスを実行し、doInBackgroundでwebserviceを呼び出します。 onCreateで

class ExecuteRest1 extends AsyncTask<Void, Void, Void> { 

    @Override 
    protected Void doInBackground(Void... params) { 
     //Call your first web service here 
     return null; 
    } 

    @Override 
    protected void onPostExecute(Void result) { 
     new ExecuteRest2.execute(); 
    } 
    } 

class ExecuteRest2 extends AsyncTask<Void, Void, Void> { 

    @Override 
    protected Void doInBackground(Void... params) { 
     //Call your second web service here 
     return null; 
    } 

    @Override 
    protected void onPostExecute(Void result) { 
     new ExecuteRest3.execute(); 
    } 
    } 

//And so on.... 

():

new ExecuteRest1.execute(); 
+0

のSiraj:提案のためのThanxsここ

私はあなたにいくつかのコードスニペットを与えています。今私の質問は私はforループで3つのWebサービスを呼び出しています。それでExecuteRest1クラスを実行する方法は?私はforループでそれを実行する必要がありますか? –

+0

1回だけrefrenceを実行することはできませんので、ExecuteRest1クラスを2回以上実行するには、forループでrefを作成する必要があります。たとえば、以下のようにします:in loop {myRef = new ExecuteRest1(); myRef.execute();} –

関連する問題