У меня действительно странная проблема, которую я пока не могу отладить ... Дело в том ... что моему приложению нужно что-то загрузить для работы.Поэтому в начале метода onCreate () я проверяю, загружено ли это что-то.Если нет, я выскакиваю диалоговое окно с просьбой загрузить его.
if (!isInstalled) {
showDialog(DIALOG_INSTALL);
} else {
start();
}
Где метод start () выполняет какое-то другое действие.Теперь этот showDialog вызывает это:
builder = new AlertDialog.Builder(MyApp.this);
builder.setMessage("Would you like to install...")
.setCancelable(false)
.setPositiveButton("Install", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.dismiss();
aManager.install(MyApp.this);
}
});
dialog = builder.create();
return dialog;
Мой диалог отображается, и я нажимаю, поэтому вызывается aManager.install ().Я передаю контекст, потому что aManager.install () выскакивает ProgressDialog, чтобы показать прогресс загрузки и порождает новый поток, в котором все загружается.Поэтому, очевидно, перед созданием моего диалога я создаю обработчик для получения ответа от этого aManager.install ().И ответ МОЖЕТ варьироваться, потому что, например, интернет-соединение недоступно (Возникло и ловится исключение, а слушатель вызывается с другим кодом).
Теперь, когда это произойдет (Исключение), я хотел бы вызвать другой диалогговоря "что-то пошло не так, вы хотите повторить попытку?" ... так что еще один вызов showDialog (DIALOG_REINSTALL) (на этот раз с другим кодом).Дело в том, что ... вызывается showDialog () (я могу это проверить, войдя в систему), но диалоги не отображаются.Вместо этого мое приложение просто виснет!?!?!?
Кто-нибудь знает, почему он это делает?Никаких исключений, абсолютно ничего от logcat, я не могу сказать, ГДЕ он зависает ... просто вижу, что метод вызывается и должен отображаться диалог ...
Большое спасибо !!