Это лучший способ показать контент? - PullRequest
0 голосов
/ 05 ноября 2010

Я относительно новичок в мире Android, и модель UI / Thread все еще сбивает с толку.

Вот что я пытаюсь сделать:

Загрузка данных из Интернета. Обработка их Показатьим Показывать AlertDialog, если есть проблема

В настоящее время я делаю так, но я не уверен, что лучше использовать такое множество потоков.

ВнутриonCreate ()

  final ProgressDialog pd = ProgressDialog.show(this, "", loadingText, true);
  final AlertDialog.Builder b = new AlertDialog.Builder(this);

  new Thread(new Runnable() {

   @Override
   public void run() {
    try {
     loadResorts();
    } catch (ResortsRetrievalException e) {
     runOnUiThread(new Runnable() {
      @Override
      public void run() {
       b.setMessage(R.string.resorts_retrieval_error)
       .show();
      }
     });
    }
    pd.dismiss();
   }
  }).start();

И мой метод loadResorts заканчивается на

  final BaseAdapter a = new ResortAdapter(this, R.layout.resort_item, resorts);

  runOnUiThread(new Runnable() {
   @Override
   public void run() {
    resortsList.setAdapter(a);
   }
  });

У меня есть один поток и два вызова runOnUiThread для этого.Я чувствую, что могло бы быть лучшее решение, не имея дело с этими темами.Я прав?

Спасибо

1 Ответ

1 голос
/ 05 ноября 2010

Использовать AsyncTask - он был создан для сценариев такого типа: выполнение фоновой задачи или (длительного) процесса, при этом все еще корректно обновляя пользовательский интерфейс (в EDT).

...