在等待响应时,Retrofit会冻结UI

时间:2017-11-20 10:08:27

标签: android multithreading httprequest retrofit2

我使用改造将数据发送到我的php webservice,后者将其存储在mysql数据库中。它在大多数情况下工作得很好,但是当我使用它发送带有帖子的图片(作为Blob)时,改造会冻结等待onResponse的UI线程。在30-40秒之后,响应到来并且UI解冻,但是在用户体验方面它是可怕的。 当我在没有图像文件的情况下进行此调用时,这不会发生。 我认为它与文件的大小有关,即使我已经压缩了它们。

你知道如何避免这种冻结吗?我应该将改装电话改为服务吗?还有其他解决方案吗?

仅供参考,这是电话会议的代码:

 Call<String> call = retrofitInterface.insertorUpdatePteChambre(postPteChambre);
    call.enqueue(new Callback<String>() {
        @Override
        public void onResponse(Call<String> call, Response<String> response) {
            if (response.isSuccessful()) {
                String resp = response.body();

            } else {
                Toast.makeText(ctx, "response not successful", Toast.LENGTH_LONG).show();
            }
        }

        @Override
        public void onFailure(Call<String> call, Throwable t) {
            Toast.makeText(ctx, R.string.error_insert, Toast.LENGTH_LONG).show();
        }
    });

0 个答案:

没有答案