0

我在我的应用程序中显示了一个自定义对话框,它会停留一小段时间(比如 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);

我还尝试在线程中使用自定义对话框进行简单线程化,并在主活动中同时休眠,这会导致异常并强制关闭。

有人请告诉我在显示自定义对话框时暂停主要活动的方法,以便执行自定义对话框关闭后的代码。

谢谢

4

1 回答 1

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 = 毫秒

那么您需要在 Clicklistner 中设置以下代码的执行。Android 是事件驱动的操作系统。对话框将被放入消息队列中,您的程序将继续执行..

于 2012-01-31T07:11:36.207 回答