Download activity callen

  • 7 Antworten
  • Letztes Antwortdatum
ChrisiBoy

ChrisiBoy

Erfahrenes Mitglied
30
Also, in meiner app können mehrere Dateien heruntergeladen werden. Damit ich nicht zu viel unotigen Code schreibe hab ich mir folgendes gedacht:
In der MainActivity als onClick:
Code:
 File url = new File("https://github.com/downloads/User/Ordner/files.zip");
Download.startDownload(url);

Dann hier die Download.java:
Code:
import java.io.BufferedInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URL;
import java.net.URLConnection;

import android.app.Activity;
import android.app.Dialog;
import android.app.ProgressDialog;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import java.io.*;
import java.util.zip.*;
import java.util.*;

public class Download extends Activity{


  static File url;
  
    public static final int DIALOG_DOWNLOAD_PROGRESS = 0;
    private ProgressDialog mProgressDialog;

    public void startDownload(File url) {
        new DownloadFileAsync().execute(url);
    }
    @Override
    protected Dialog onCreateDialog(int id) {
        switch (id) {
case DIALOG_DOWNLOAD_PROGRESS:
mProgressDialog = new ProgressDialog(this);
mProgressDialog.setMessage("Downloading file..");
mProgressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
mProgressDialog.setCancelable(false);
mProgressDialog.show();
return mProgressDialog;
default:
return null;
        }
    }

class DownloadFileAsync extends AsyncTask<String, String, String>
{

public void execute(File url)
{
// TODO: Implement this method
}

@Override
protected void onPreExecute() {
super.onPreExecute();
showDialog(DIALOG_DOWNLOAD_PROGRESS);
}

@Override
protected String doInBackground(String... aurl) {
int count;

try {

URL url = new URL(aurl[0]);
URLConnection conexion = url.openConnection();
conexion.connect();

int lenghtOfFile = conexion.getContentLength();
Log.d("ANDRO_ASYNC", "Lenght of file: " + lenghtOfFile);

InputStream input = new BufferedInputStream(url.openStream());
OutputStream output = new FileOutputStream("/sdcard/download/file.zip");

byte data[] = new byte[1024];

long total = 0;

while ((count = input.read(data)) != -1) {
total += count;
publishProgress(""+(int)((total*100)/lenghtOfFile));
output.write(data, 0, count);
}

output.flush();
output.close();
input.close();
} catch (Exception e) {}
return null;

}
protected void onProgressUpdate(String... progress) {
Log.d("ANDRO_ASYNC",progress[0]);
mProgressDialog.setProgress(Integer.parseInt(progress[0]));
}

@Override
protected void onPostExecute(String unused) {
dismissDialog(DIALOG_DOWNLOAD_PROGRESS);
}
}
}

Leider funktioniert es bei mir nicht:confused:

Gesendet von meinem GT-I9100 mit der Android-Hilfe.de App
 
Wenn ich in der MainActivity auf den btn klick passiert leider nichts.

Gesendet von meinem GT-I9100 mit der Android-Hilfe.de App
 
Hat jemand eine Idee?:confused:

Gesendet von meinem GT-I9100 mit der Android-Hilfe.de App
 
Der downloadManager ist leider erst ab Android 2.3, daher will ich den nicht verwenden

Gesendet von meinem GT-I9100 mit der Android-Hilfe.de App
 
Hmm hat jemand eine Idee?:confused:

Gesendet von meinem GT-I9100 mit der Android-Hilfe.de App
 
ChrisiBoy schrieb:
Der downloadManager ist leider erst ab Android 2.3, daher will ich den nicht verwenden

Gesendet von meinem GT-I9100 mit der Android-Hilfe.de App

Die paar Hanseln mit Android <2.3 haben deine App dann bestimmt nicht installiert - sprich wenn du sonst nicht klar kommst, nimm ruhigen Gewissens den DownloadManager ;)

Greets,
Max
 
myeta schrieb:
Die paar Hanseln mit Android <2.3 haben deine App dann bestimmt nicht installiert - sprich wenn du sonst nicht klar kommst, nimm ruhigen Gewissens den DownloadManager ;)

Greets,
Max

Dann verliere ich ~7.000 User (laut google play Statistik

Gesendet von meinem GT-I9100 mit der Android-Hilfe.de App
 
Problem hiermit gelöst: klick

Gesendet von meinem GT-I9100 mit der Android-Hilfe.de App
 

Ähnliche Themen

AnnaBauer21
Antworten
6
Aufrufe
1.018
AnnaBauer21
AnnaBauer21
Zurück
Oben Unten