我刚刚学习Retrofit 2.在我的应用中Intent“UploadToServer” 我有三个异步任务需要按顺序调用: 1.发布UserName并返回UserId。 2.发布地理位置和其他一些字符串数据并获取“报告单号”。 3.发布jpg图像和票号。 我的服务器上运行了一个Web服务。
在标准的手工编码Java中,我会使用looper或类似的东西。 如何使用Retrofit 2实现这一目标?哦,我希望有一个进度条移动,特别是在上传jpg图像文件时。
感谢。
答案 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);