2016-06-28 12 views
1

Wie kann ich eine Datei von URL herunterladen mit Retrofit 2.0 und DownloadManager in Android? Ich kann dies mit Retrofit 1.9 tun, aber bitte helfen Sie mir für Retrofit 2.0. Jede Hilfe wird sehr geschätzt. Lassen Sie mich auch wissen, wie man es auf dem Android-Gerät Bildschirm zeigt.Datei herunterladen mit Retrofit 2.0 und DownloaManager

+0

Ich bin mir sicher, dass es möglich ist. Aber ohne ein Beispiel für Ihre Versuche ist es schwer, Ihnen zu sagen, wo Sie falsch liegen. – Mike

+0

Hallo Mike, eigentlich konnte ich die Syntax der asynchronen Retrofit 2.0-Anfrage nicht bekommen. –

Antwort

0

Sie haben drei Fragen gestellt. Lassen Sie mich versuchen, sie zu beantworten eins nach dem anderen:

1) Download-Datei mit Retrofit 2.0: Der einzige Unterschied zwischen den Anrufen in Retrofit 1,9 und 2,0:

Synchron in Retrofit 1,9:

public interface GetAPI { 

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

asynchrone in Retrofit 1,9

public interface GetAPI { 

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

Jetzt in Retrofit 2.0 können Sie einfach erklären:

public interface GetAPI { 

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

synchroner Aufruf in Retrofit 2,0

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

Asynchronen Aufruf in 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) { 
} 
}); 

können Sie sehen: http://www.androidtutorialpoint.com/networking/retrofit-android-tutorial/

2) herunterladen Downloadmanager mit: Sie leicht jeder sehen kann Tutorial im Web in Bezug auf dies. Hauptsächlich gibt es zwei Schritte:

diese

// für Android Download-Manager erstellen Anfrage

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

// Enqueue herunterladen und speichern in referenceId

downloadReference = downloadManager.enqueue(request); 

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

3) Zeigen Sie es auf dem Gerät angezeigt. So könnte Anzeige von Bild oder JSON-Array sein. Also hier erzähle ich dir von Image. Verwenden Sie den folgenden Code:

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

Ich hoffe, meine Erklärung hat Ihnen geholfen. Alles Gute.

+0

danke für die Info. Lass mich das versuchen. –

+0

Es funktioniert. Vielen Dank :) –