Я искал в Stackoverflow, просматривал примеры в Android Developer и некоторые книги, и я просто не понял.
Я пытаюсь показать окно AlertDialog, которое прерывает поток программы. В большинстве примеров, которые я видел, нет кода после диалогового окна, и мне нужно, чтобы моя программа прекратила выполнение до тех пор, пока не будет нажата кнопка AlertDialog. Похоже, что AlertDialog создан из другого потока, и я не уверен, как получить этот поток.
Логика программы: если синтаксический анализ плохой, программа принудительно закроется. Я хочу, чтобы пользователь знал, что нужно перезапустить программу, и все будет работать. (Я удаляю и воссоздаю таблицы, и они повторно заполняются при запуске программы)
Вот код:
if(database populated)
{
....code.....
if(parseok.contentEquals("Error"))
{
doForceClose();
}
displayDate = "Last: " + parseok; //I don't want the program to continue to here.
//Rest of code in the method. If I continue the program will Force Close
}
else
do something else
Вот метод AlertDialog:
private void doForceClose()
{
String themessage = "Because some of the parameters have changed in the yada yada";
AlertDialog.Builder ad = new AlertDialog.Builder (this);
ad.setTitle("Internal Error");
ad.setMessage(themessage);
ad.setPositiveButton("Sorry", new OnClickListener()
{
public void onClick(DialogInterface dialog, int which)
{
finish();
return;
}
});
ad.create();
ad.show();
}
за исключением того, что реклама не отображается, и программа продолжает принудительно закрываться.
Очевидно, я чего-то не догоняю. Любые идеи?
edit: я нахожусь в классе, который расширяет активность
Activity.runOnUiThread()
. - person Nick Campion   schedule 19.02.2011