DownloadProgressActivity.java
Dosyayı İndir
package com.godoro.androidclients;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.ProgressBar;
import android.widget.TextView;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.net.URL;
import java.net.URLConnection;
public class DownloadProgressActivity extends Activity {
private TextView messageView;
private TextView textView;
private TextView statusView;
private String[] fileNames = {"Java.jpg", "JavaEE.jpg", "Android.jpg",
"C_CPlusPlus.jpg","PHP.jpg", "CSharp.jpg",
"SQL.jpg", "HTML.jpg"};
private String remoteFolder = "http://www.godoro.com/subjects";
private String localFolder = "/local_subjects";
private ProgressBar progressBar;
private int progressStatus;
private int progressStatusMax =fileNames.length;
/*
private Handler handler = new Handler();
*/
/*
private Handler handler = new Handler() {
@Override
public void handleMessage(Message message) {
showProgress(message.arg1);
showName(message.getData().getString("fileName"));
}
};
*/
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_download_progress);
messageView=(TextView) findViewById(R.id.messageView);
textView = (TextView) findViewById(R.id.textView);
statusView = (TextView) findViewById(R.id.statusView);
progressBar = (ProgressBar) findViewById(R.id.progressBar);
}
public void onClickDownloadHandler(View view) {
Runnable runnable = new Runnable() {
@Override
public void run() {
retrieveFiles();
}
};
Thread thread = new Thread(runnable);
thread.start();
}
private void retrieveFiles() {
try {
progressBar.setVisibility(View.VISIBLE);
progressBar.setMax(progressStatusMax);
progressStatus=0;
for(final String fileName : fileNames){
String remoteAddress=remoteFolder+"/"+fileName;
File localFile=new File(getFilesDir(),localFolder+"/"+fileName);
localFile.getParentFile().mkdirs();
Log.i("GodoroAndroid", "Dosya yolu : "+localFile.getAbsolutePath());
download(remoteAddress,localFile);
progressStatus += 1;
// UI Thread
Runnable action = new Runnable() {
@Override
public void run() {
showProgress(progressStatus);
showName(fileName);
}
};
runOnUiThread(action);
// Handler Post
/*
handler.post(new Runnable() {
public void run() {
showProgress(progressStatus);
showName(fileName);
}
});
*/
//Handler Message
/*
Message message = new Message();
message.arg1 = progressStatus;
Bundle data=new Bundle();
data.putString("fileName",fileName);
message.setData(data);
handler.sendMessage(message);
*/
Thread.sleep(1000);
}
} catch (Exception e) {
Log.e("GodoroAndroid", "Dosya indirme yanlışlığı", e);
}
}
private void showProgress(int status) {
if (status > progressStatusMax) {
status = progressStatusMax;
}
int statusPercent = 100 * status / progressStatusMax;
statusView.setText("İlerleme " + status + " (%" + statusPercent+ ")");
progressBar.setProgress(status);
if (status < progressStatusMax) {
messageView.setText(R.string.filesToDownload);
} else {
messageView.setText(R.string.filesDownloaded);
progressBar.setVisibility(View.INVISIBLE);
}
}
private void showName(String name) {
textView.append("\r\n"+name);
}
private static void download(String address, File file) throws IOException {
URL url = new URL(address);
URLConnection connection = url.openConnection();
InputStream in = connection.getInputStream();
String content = read(in);
FileOutputStream out = new FileOutputStream(file);
write(out, content);
}
private static void write(OutputStream out, String content)
throws IOException {
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(out));
writer.write(content);
writer.flush();
writer.close();
}
private static String read(InputStream in)
throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(in));
StringBuilder builder = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null) {
builder.append(line).append("\r\n");
}
in.close();
return builder.toString();
}
}
Dosyayı İndir