2016-06-28 58 views
1

如何在Android中使用Retrofit 2.0和DownloadManager從URL下載文件?我可以使用Retrofit 1.9來做到這一點,但請幫助我進行Retrofit 2.0。任何幫助將不勝感激。另外讓我知道如何在Android設備屏幕上顯示它。使用Retrofit 2.0和DownloaManager下載文件

+0

我相信這是可能的。然而,沒有你的嘗試的例子,很難告訴你你錯在哪裏 – Mike

+0

嗨邁克,其實我無法得​​到Retrofit 2.0異步請求的語法。 –

回答

0

您有三個問題。讓我試着回答這些問題一個接一個:

1)使用改造2.0下載文件: 只有在改造1.9調用和2.0之間的區別是:

同步在改造1.9:

public interface GetAPI { 

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

異步在改造1.9

public interface GetAPI { 

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

現在改造2.0,你可以簡單地聲明:

在改造2.0
public interface GetAPI { 

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

同步調用,

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

異步調用的改造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)下載使用下載管理器:您可以很容易地看到任何網上教程關於此。主要有兩個步驟:

//創建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數組。所以我在這裏告訴你關於圖像。使用下面的代碼:

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); 

我希望我的解釋能幫助你。祝一切順利。

+0

感謝您的信息。讓我試試這個。 –

+0

它正在工作。謝謝 :) –