改造2个顺序帖子

时间:2016-04-06 21:51:56

标签: java android retrofit2

我刚刚学习Retrofit 2.在我的应用中Intent“UploadToServer” 我有三个异步任务需要按顺序调用: 1.发布UserName并返回UserId。 2.发布地理位置和其他一些字符串数据并获取“报告单号”。 3.发布jpg图像和票号。 我的服务器上运行了一个Web服务。

在标准的手工编码Java中,我会使用looper或类似的东西。 如何使用Retrofit 2实现这一目标?哦,我希望有一个进度条移动,特别是在上传jpg图像文件时。

感谢。

1 个答案:

答案 0 :(得分: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();
       }
}

希望它有所帮助。

修改

我使用了一个不确定的ProgressDialog。您可以在调用服务之前显示它,并在响应到达时,onResponse或onFailure方法中隐藏。

    mProgressDialog = ProgressDialog.show(this, getString(R.string.wait_plaease),
            getString(R.string.executing_action), true);