Android Показать диалоговое окно, пока поток не будет завершен, а затем продолжить с программой - PullRequest
0 голосов
/ 07 августа 2010

Я читаю несколько тысяч элементов из базы данных в моем приложении для Android и хочу показать диалоговое окно загрузки, запустить поток и прочитать базу данных, затем закрыть диалоговое окно и затем заполнить представление списка данными. Я не могу понять это.

У меня всплывающее окно исчезает, но я не знаю, как заполнить список после завершения потока.

Есть идеи?

1 Ответ

4 голосов
/ 07 августа 2010

Используйте AsyncTask, заполните представление списка в onPostExecute ().

http://www.screaming -penguin.com / узел / 7746

private class InsertDataTask extends AsyncTask<Void, Void, Void> {

  private final ProgressDialog dialog = new ProgressDialog(Main.this);

  // can use UI thread here
  protected void onPreExecute() {
     this.dialog.setMessage("Inserting data...");
     this.dialog.show();
  }
  // automatically done on worker thread (separate from UI thread)
  protected Void doInBackground(final String... args) {
     //do something in background, i.e. loading data
     return null;
  }

  // can use UI thread here
  protected void onPostExecute(final Void unused) {
     if (this.dialog.isShowing()) {
        this.dialog.dismiss();
     }
     // populate list here
  }
}

...

new InsertDataTask ().execute();

Также полезно: http://developer.android.com/resources/articles/painless-threading.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...