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

Bu Sayfayı Paylaş:




Bu Sayfayı Paylaş:

İletişim Bilgileri

Takip Et

Her Hakkı Saklıdır. Bu sitede yayınlanan tüm bilgi ve fikirlerin kullanımından fibiler.com sorumlu değildir. Bu sitede üretilmiş , derlenmiş içerikleri, fibiler.com'u kaynak göstermek koşuluyla kendi sitenizde kullanılabilirsiniz. Ancak telif hakkı olan içeriklerin hakları sahiplerine aittir