Meine Anwendung hat eine Menge von optionalen Daten, die heruntergeladen werden können, so dass ich beschlossen, einen Dienst zu verwenden, um alle Downloads im Hintergrund zu behandeln, so begann ich es zu lernen und hier ist, wo ich bekam:
public class DownloadService extends IntentService{
public DownloadService() {
super("DownloadService");
}
@Override
protected void onHandleIntent(Intent intent) {
String URL=intent.getStringExtra("DownloadService_URL");
String FileName=intent.getStringExtra("DownloadService_FILENAME");
String Path=intent.getStringExtra("DownloadService_PATH");
try{
URL url = new URL(URL);
URLConnection conexion = url.openConnection();
conexion.connect();
InputStream input = new BufferedInputStream(url.openStream());
OutputStream output = new FileOutputStream(Path+FileName);
byte data[] = new byte[1024];
int count = 0;
while ((count = input.read(data)) != -1) {
output.write(data);
}
output.flush();
output.close();
input.close();
}
catch(Exception e){ }
}
}
Der Code der Hauptaktivität:
Intent ServiceIntent = new Intent(this,DownloadService.class);
ServiceIntent.putExtra("DownloadService_URL", "the url...");
ServiceIntent.putExtra("DownloadService_FILENAME", "Test1.rar");
ServiceIntent.putExtra("DownloadService_PATH", "/sdcard/test/");
startService(ServiceIntent);
- Ist der zum Herunterladen der Dateien verwendete Code korrekt? Verwende ich den Dienst richtig?
- Ich möchte eine Menge Dateien herunterladen. Sollte ich also startService für jede verschiedene URL?
- Ich möchte den Benutzer über den erreichten Prozentsatz informieren. Aber der Dienst hat kein UI. Sollte ich das in der Benachrichtigungsleiste tun?
Gracias.