我正在我的应用程序中显示一个自定义对话框,该对话框停留一小段时间(比如2秒)然后消失。我从主要活动中调用此自定义对话框。 我希望我的调用活动暂停,直到自定义对话框消失。问题是,在对话框被解除后,活动代码 总是被执行,同时显示对话框。
我试过显示对话框,睡了2秒然后解除它,这是无效的。解除对话框后的活动代码正在执行。
cust_dlg.show();
Thread.sleep(2000);
cust_dlg.dismiss();
我还尝试将对话框放在计时器任务中,该任务也失败
final Timer t = new Timer();
cust_dlg.show();
t.schedule(new TimerTask() {
public void run() {
cust_dlg.dismiss();
t.cancel();
}
}, 500);
我还尝试在线程中使用自定义对话框进行简单线程,并在主活动中同时进行睡眠,这会导致异常并强制关闭。
有人请告诉我在显示自定义对话框时暂停主要活动的方法,以便自定义对话框关闭后的代码 NOT 执行。
谢谢
答案 0 :(得分:0)
尝试使用处理程序
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
public void run() {
AlertDialog.Builder builder = new AlertDialog.Builder(RBLQuizSpiel.this);
if (aktuellGeloest == true){
builder.setMessage(R.string.quiz_neu)
.setTitle(R.string.quiz_glueckwunsch)
.setPositiveButton(R.string.quiz_ja, dialogClickListener)
.setNegativeButton(R.string.quiz_nein, dialogClickListener).show();
} else {
builder.setMessage(R.string.quiz_neu)
.setTitle(R.string.quiz_schade)
.setPositiveButton(R.string.quiz_ja, dialogClickListener)
.setNegativeButton(R.string.quiz_nein, dialogClickListener).show();
}
}
}, 1500);
此后不再有代码。
1500 = ms
您需要在Clicklistner中设置以下代码的执行。 Android是事件驱动的操作系统。对话框将被放入消息qeue中,您的程序将继续...