У меня есть приложение, которое должно создать базу данных, и если это не удастся, тогда нет смысла двигаться вперед. Я построил AlertDialog и show()
, но он никогда не отображается. Логика проходит через, а затем barfs из-за недостающей базы данных.Каков наилучший способ остановить активность и предупредить пользователя?
Каков правильный/лучший способ вызвать сообщение и остановить работу? Приведенный ниже код выполняет штраф (значение show()
происходит во время отладки, и оно переходит к следующей строке), но пользовательский интерфейс никогда не отображает это предупреждение. BTW - я понимаю, что бросок может быть не самым изящным, но я даже не добираюсь так далеко ... B ^).
try {
myDBHelp.createDataBase();
} catch (IOException ioe) {
new AlertDialog.Builder(this).setCancelable(false)
.setMessage(ioe.getMessage())
.setTitle("Database Create Failed")
.setPositiveButton("Quit", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
throw new Error("Unable to create database - please try uninstall/reinstall");
}
})
.show();
Использование тоста конечно же верно, но мне интересно, была ли у меня такая же проблема. Проблема в том, что пользовательский интерфейс не показывал мой диалог, пока он не запутался. Оказывается, переопределенная функция onResume() выполнялась до того, как появилось диалоговое окно, и там не сработало, поскольку код ожидал базы данных. Я должен был ввести логическое значение и проверить/выполнить только этот зависимый код, если нет предыдущих ошибок. После завершения операции onResume() появится диалоговое окно. Я уверен, что Toast будет работать, как только я защищу код onResume(). Благодарю. – teachableMe