Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Не выполняется скачивание файла - программа работает? - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android Загрузка текста и картинки в listView с AsyncTask http://www.cyberforum.ru/android-dev/thread1486655.html
Привет всем. Имеется файл в формате JSON на удалённом сервере. Мне нужно вывести текст из определённых узлов файла и картинки по указанным в файле ссылкам. {"success":1,"products":} Нашёл в...
Программирование Android Как загрузить видео при старте Activity? Всем привет. Возможно этот вопрос покажется для кого-то простым и не уместным, но так как я только начинаю заниматься Андройдом я никак не могу его решить. Проблема в следующем... как сделать так,... http://www.cyberforum.ru/android-dev/thread1486631.html
Отправка сообщения в Skype из приложения Программирование Android
Как отправить в скайп сообщение из моего приложения??Что для этого нужно сделать?? Можете обьяснить вкратце или если это не сложно приложить небольшой фрагмент кода отправки сообщения в скайп??
Backend для мобильного приложения Программирование Android
Пишу приложение, требуется backend. Использовал parse.com, но скорость работы оставляет желать лучшего. Поэтому принял решение разработать свой сервер, до этого никогда этим не занимался. Определил...
Программирование Android Приложения на C++, Delphi под Android http://www.cyberforum.ru/android-dev/thread1486445.html
Доброго всем дня. Прошу поделиться знаниями и опытом использования языков программирования отличных от Java. А вопрос в том, не возникает ли проблем совместимости при запуске приложений на...
Программирование Android Получить token от менеджера аккаунтов Кто может розживать код http://findevelop.blogspot.ru/2012/05/oauth2-android.html Как получить Token и записать его в БД. В примере используются какойто код с отсроченным выполением при попытке... подробнее

Показать сообщение отдельно
Mikalai
256 / 232 / 94
Регистрация: 11.01.2015
Сообщений: 656
25.06.2015, 00:58
lifeforce, вот так работает:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
import android.app.Activity;
import android.app.ProgressDialog;
import android.content.Context;
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup.LayoutParams;
import android.widget.Button;
 
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
 
public class MainActivity extends Activity {
 
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Button load = new Button(this);
        load.setText("Load file");
        load.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                downloadFile("http://dl.dropbox.com/s/unplki0xa40ql3f/Amplifier.ampl?token_hash=AAFon7ENo62XGixcqLV_s6FZgs0Ir6FnRbafnNzJsEdBeQ&dl=1");
            }
        });
        setContentView(load, new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT));
    }
 
 
    private void downloadFile(String url) {
        final Context context = this.getApplicationContext();
        final ProgressDialog progressDialog = new ProgressDialog(this);
 
        new AsyncTask<String, Integer, File>() {
            private Exception m_error = null;
 
            @Override
            protected void onPreExecute() {
                progressDialog.setMessage("Downloading ...");
                progressDialog.setCancelable(false);
                progressDialog.setMax(100);
                progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
                progressDialog.show();
            }
 
            @Override
            protected File doInBackground(String... params) {
 
                URL url;
                HttpURLConnection urlConnection;
                InputStream inputStream;
                int totalSize;
                int downloadedSize;
                byte[] buffer;
                int bufferLength;
 
                File file = null;
                FileOutputStream fos = null;
 
                try {
                    url = new URL(params[0]);
                    urlConnection = (HttpURLConnection) url.openConnection();
 
                    urlConnection.setRequestMethod("GET");
                    urlConnection.setDoOutput(true);
                    urlConnection.connect();
                    file = File.createTempFile("Amplifier", "ampl", context.getCacheDir());
                    fos = new FileOutputStream(file);
                    inputStream = urlConnection.getInputStream();
                    totalSize = urlConnection.getContentLength();
                    downloadedSize = 0;
                    buffer = new byte[1024];
                    bufferLength = 0;
                    // читаем со входа и пишем в выход,
                    // с каждой итерацией публикуем прогресс
                    while ((bufferLength = inputStream.read(buffer)) > 0) {
                        fos.write(buffer, 0, bufferLength);
                        downloadedSize += bufferLength;
                        publishProgress(downloadedSize, totalSize);
                    }
                    fos.close();
                    inputStream.close();
 
                    return file;
                } catch (MalformedURLException e) {
                    e.printStackTrace();
                    m_error = e;
                } catch (IOException e) {
                    e.printStackTrace();
                    m_error = e;
                }
 
                return null;
            }
 
            // обновляем progressDialog
            protected void onProgressUpdate(Integer... values) {
                progressDialog.setProgress((int) ((values[0] / (float) values[1]) * 100));
            };
 
            @Override
            protected void onPostExecute(File file) {
                // отображаем сообщение, если возникла ошибка
                if (m_error != null) {
                    m_error.printStackTrace();
                    return;
                }
                // закрываем прогресс и удаляем временный файл
                progressDialog.hide();
                file.delete();
            }
        }.execute(url);
    }
}
вот это в манифесте лишнее:

XML
1
2
3
4
5
<!-- Network State Permissions -->
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
 
    <!-- Access Location -->
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru