отображение в Android временного настраиваемого диалога при приостановке выполнения основного потока - PullRequest
0 голосов
/ 31 января 2012

Я показываю пользовательское диалоговое окно в моем приложении, которое остается в течение небольшого времени (скажем, 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);

Я также пробовал простую многопоточность с настраиваемым диалоговым окном в потоке и одновременно включал режим сна в основное действие, что вызывает исключение и принудительное закрытие.

Кто-нибудь, пожалуйста, сообщите мне способ приостановить основное действие, пока отображается настраиваемое диалоговое окно, чтобы код после отклонения настраиваемого диалогового окна НЕ выполнялся.

Спасибо

1 Ответ

0 голосов
/ 31 января 2012

Попробуйте обработчик

        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 - это управляемая событиями ОС.Диалог будет помещен в сообщение qeue, и ваша программа перейдет на ..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...