使用Retrofit 2.0和DownloaManager下载文件

时间:2016-06-28 18:50:07

标签: java android

如何使用Android中的Retrofit 2.0和DownloadManager从URL下载文件?我可以使用Retrofit 1.9做到这一点,但请帮我改造Retrofit 2.0。任何帮助将非常感谢。另请告诉我如何在Android设备屏幕上显示它。

1 个答案:

答案 0 :(得分:0)

你问过三个问题。让我试着逐一回答:

1)使用Retrofit 2.0下载文件: 只有Retrofit 1.9和2.0中的电话之间的区别是:

Retrofit 1.9中的同步:

public interface GetAPI {

@GET("/list")
Model getModel();
}

Retrofit 1.9中的异步

public interface GetAPI {

@GET("/list")
void getModel(Callback<Model> cb);
}

现在在Retrofit 2.0中你可以简单地声明:

public interface GetAPI {

@GET("/list")
Call<Model> getModel();
}

Retrofit 2.0中的同步调用

Call<Model> call = service.getModel();
Model model = call.execute();

Retrofit 2.0中的异步调用

Call<Model> call = service.getModel();
call.enqueue(new Callback<Model>() {
@Override
public void onResponse(Response<Model> response) {
// Get result Model from response.body()
}

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

您可以看到:http://www.androidtutorialpoint.com/networking/retrofit-android-tutorial/

2)使用DownloadManager下载:您可以在网上轻松查看有关此内容的任何教程。主要有两个步骤:

//创建android下载管理器的请求

downloadManager = (DownloadManager)getSystemService(DOWNLOAD_SERVICE);
DownloadManager.Request request = new DownloadManager.Request(uri);

//排队下载并保存到referenceId

downloadReference = downloadManager.enqueue(request);

请参阅:http://www.androidtutorialpoint.com/networking/android-download-manager-tutorial-download-file-using-download-manager-internet/

3)在设备屏幕上显示。因此显示可以是图像或JSON数组。所以我在这里告诉你关于Image的事。使用以下代码:

int width, height;
        ImageView image = (ImageView) findViewById(R.id.imageViewId);
        Bitmap bMap = BitmapFactory.decodeFile(getExternalFilesDir(null) + File.separator + "AndroidTutorialPoint.jpg");
        width = 2*bMap.getWidth();
        height = 6*bMap.getHeight();
        Bitmap bMap2 = Bitmap.createScaledBitmap(bMap, width, height, false);
        image.setImageBitmap(bMap2);

我希望我的解释对你有帮助。祝一切顺利。