Android: диалог вылетает в теме? - PullRequest
0 голосов
/ 19 ноября 2010

У меня есть класс с потоком и диалогом прогресса. Когда поток останавливается, диалог должен закрываться. Но если поток останавливается, приложение вылетает: S Кто-нибудь знает, что не так?


public class Main extends Activity {</p>

<p>public static ProgressDialog LoadingDialog = null;</p>

<p>@Override
 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  LoadingDialog.show(AndroidRSSReader.this, "Laden...", "Even geduld aub...", true);
  setContentView(R.layout.main);
  startUp();</p>

<p>new Thread(new Runnable(){
            public void run() {</p>

<pre><code>         try {
 Thread.sleep(1000);
} catch (InterruptedException e) {

 e.printStackTrace();
}
         LoadingDialog.dismiss();
        }
    }).start();

}

Ответы [ 2 ]

3 голосов
/ 19 ноября 2010

LoadingDialog все еще равен нулю, когда вы вызываете команду dismiss.Вы должны убедиться и назначить это чему-то (например, ваш индикатор выполнения).

LoadingDialog = ProgressDialog.show(AndroidRSSReader.this, "Laden...", "Even geduld aub...", true);
1 голос
/ 19 ноября 2010

Кажется, у вас есть проблемы с закрытием диалога, попробуйте с помощью обработчика выполнить действие в потоке пользовательского интерфейса:

private Handler handler = new Handler() {
    @Override

    public void handleMessage(Message msg) {
    // perform logic
    if(LoadingDialog!=null)//first check if dialog is not null.This might be a reason for crashing
     LoadingDialog.dismiss();
    LoadingDialog=null
    }

    };

, а затем вызвать его в своей деятельности, просто позвонив handler.sendEmptyMessage(0); и все готово.

Дополнительные советы: также посмотрите на AsyncTask для выполнения асинхронной операции.

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