Вопрос

В «Oncreate» я загружаю данные из Интернета. Продолжительность загрузки данных составляет 10 сек. У меня нет ProgressDialog, пока данные загружают. Вот мой код, но ProgressDialog не появляется:

public void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    ProgressDialog dialog = ProgressDialog.show(Test.this, "", 
        "Loading. Please wait...", true);

     try {
         URL myURL = new URL("http://www.sample.com/");
         URLConnection ucon = myURL.openConnection();
         InputStream is = ucon.getInputStream();
         BufferedInputStream bis = new BufferedInputStream(is);
         ByteArrayBuffer baf = new ByteArrayBuffer(50);
         int current = 0;
          while((current = bis.read()) != -1){
                  baf.append((byte)current);
          }

          content= new String(baf.toByteArray());

     }
     catch (Exception e) {}
     dialog.dismiss();
}
Это было полезно?

Решение

Лучший подход к выполнению таких вещей использует AsyncTask Для того, чтобы не заморозить приложение, пока вы загружаете файл. Более того, что если вы дадите своим пользователям лучшим опытом, используя диалог прогресса, а не простой диалог. Это не сложно реализовать; Вы можете увидеть пример здесь: Загрузите файл с Android и показывая прогресс в прогрессе

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top