2016-04-06 11 views
0

私はちょうど今、私は私が順次呼び出す必要が3つの非同期タスクを持っている私のアプリの意向「UploadToServer」 でレトロフィット2.について学んでいます。 2.ジオロケーションとその他の文字列データをポストして、「レポートチケット番号」を返す。 3. jpg画像をチケット番号とともに掲示する。 私は自分のサーバー上でWebサービスを実行しています。レトロフィット2連続投稿は

標準の手作業でコーディングされたJavaでは、私はルーパーなどを使用します。 これはどのようにしてRetrofit 2を使用して達成できますか?そして、ああ、私は、特にjpg画像ファイルをアップロードするときに、進行バーを移動したいと思います。

ありがとうございました。

答えて

0

あなたはコールバックを使用して通話をチェーンすることができます

OkHttpClient client = new OkHttpClient.Builder().build(); 

    Retrofit retrofit = new Retrofit.Builder() 
        .baseUrl(BASE_URL_WEBAPI) 
        .addConverterFactory(GsonConverterFactory.create()) 
        .client(client) 
        .build(); 

    mService = retrofit.create(IWebApi.class); 
    ... 
    mService.first_operation(...params...).enqueue(callback); 

コールバックがfirst_operationの結果を期待していたクラスのインスタンスです。 first_operationが成功した場合は、second_methodを呼び出します。

public class Example implements Callback<void> { 

     @Override 
     public void onResponse(Response<LoginResponse> response) { 
      second_method(); 
     } 

     @Override 
     public void onFailure(Throwable t) {   
      t.printStackTrace(); 
     } 
} 

希望します。

編集:

私は真でindeterminatedでProgressDialogを使用しています。サービスへの呼び出しの直前に表示し、応答が到着したときに非表示にすることができます(onResponseメソッドまたはonFailureメソッド)。

mProgressDialog = ProgressDialog.show(this, getString(R.string.wait_plaease), 
      getString(R.string.executing_action), true); 
関連する問題