private final static int DIALOG_XYZ = 0;
@Override
protected Dialog onCreateDialog(int id) {
switch (id) {
case DIALOG_XYZ:
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage("Are you sure you want to exit?")
.setCancelable(false)
.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
Activity.this.finish();
}
})
.setNegativeButton("No", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.cancel();
}
});
Dialog alert = builder.create();
return alert;
}
return null;
}
Затем, когда вы хотите показать диалог (откуда угодно, просто сделайте -
showDialog(DIALOG_XYZ);
Примечание. Как намекнул @Hyberboreus, вы не можете отобразить диалоговое окно с предупреждением в потоке, не являющемся пользовательским интерфейсом, например, в другом запущенном потоке или в службе и т. Д. Если это то, что вам нужно, посмотрите примеры AsyncTask, доступные на странице разработчика. сайт, который расскажет вам, как синхронизировать фоновые потоки с потоками пользовательского интерфейса и обновить пользовательский интерфейс. НТН.