2012-01-31 49 views
0

我在我的应用程序中显示一个自定义对话框,该对话框保持一小段时间(比如说2秒)然后消失。我从主要活动调用此自定义对话框。 我希望我的呼叫活动暂停,直到自定义对话框消失。问题是活动代码之后,对话框关闭始终执行,而对话框正在显示。在android中显示定时自定义对话框,同时暂停主线程执行

我试图显示对话框,睡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); 

我也曾尝试简单的线程在一个线程中的自定义对话框,并同时把睡在主要活动,这会导致异常和强制关闭。

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

感谢

回答

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是事件驱动的操作系统。该对话框将被放入一条消息qeue和您的程序步骤..

+0

感谢您的响应,killphil75,但这并不能解决问题,因为到点击被聆听的时候,代码以后会被执行。另外我不想让自定义对话框作为可点击的第一位。 – osum 2012-01-31 12:35:20