Загрузка фалов из интернета
Добавлено: 06 авг 2014, 19:29
Здравствуйте, помогите пожалуйста. Есть во этот код:
при этом загружается 1 файл. Вопрос в том, что я не могу понять как сделать загрузку например 30 файлов?
Код: Выделить всё
import java.io.BufferedInputStream;
import java.io.File;
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.ProgressDialog;
import android.graphics.drawable.Drawable;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Environment;
import android.util.Log;
import android.widget.TextView;
public class MainActivity extends Activity {
public static final String] Urls = {
"https://www.url1",
//"https://www.url2",
//"https://www.url3"
};
TextView textView;
ProgressDialog progressDialog;
DownloadTask downloadTask;
public static void createDir(String folder) {
File f1 = new File(folder);
if (!f1.exists()) {
f1.mkdirs();
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView = (TextView)findViewById(R.id.textView);
downloadTask = new DownloadTask();
downloadTask.execute(Urls);
}
@Override
protected void onStop() {
downloadTask.cancel(true);
super.onStop();
}
class DownloadTask extends AsyncTask<String, Integer, Drawable>{
@Override
protected void onPreExecute() {
progressDialog = new ProgressDialog(MainActivity.this);
progressDialog.setIndeterminate(false);
progressDialog.setMax(100);
progressDialog.setProgress(0);
progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
progressDialog.setMessage("Загрузка");
progressDialog.show();
}
@Override
protected Drawable doInBackground(String... params) {
int count;
try {
URL url = new URL(params[0]);
URLConnection conection = url.openConnection();
conection.connect();
int lenghtOfFile = conection.getContentLength();
InputStream input = new BufferedInputStream(url.openStream(), 8192);
OutputStream output = new FileOutputStream("/sdcard/testfile.html");
byte data] = new byte[50];
long total = 0;
while ((count = input.read(data)) != -1) {
if (isCancelled()){
return null;
}
total += count;
output.write(data, 0, count);
publishProgress((int)((total*100)/lenghtOfFile));
}
output.flush();
output.close();
input.close();
} catch (Exception e) {
Log.e("Error: ", e.getMessage());
}
String imagePath = Environment.getExternalStorageDirectory().toString() + "/testfile.html";
return Drawable.createFromPath(imagePath);
}
@Override
protected void onProgressUpdate(Integer... progress) {
progressDialog.setProgress(progress[0]);
}
@Override
protected void onCancelled() {
}
}
}