Android 如何暂停其他指令直到对话框消息关闭

Android 如何暂停其他指令直到对话框消息关闭,android,android-alertdialog,toast,Android,Android Alertdialog,Toast,嗨,我有一个关于AlertDialog/Toast的问题。 当用户点击一个按钮时,只会显示一条显示“你是对的”的消息,持续1秒。当我使用toast/alertdialog实现此功能时,它会执行此操作,但会在关闭dailog之前启动onclick方法中的下一条指令。如何解决此问题?如果您正在使用toast,请将任务推迟到toast显示时使用 使用对话框时,为“Okey”按钮实现一个 我必须做的是将AlertDialog之后的任何代码放入相应的侦听器中。例如,如果在一个警报对话框之后有一堆代码,您只

嗨,我有一个关于AlertDialog/Toast的问题。
当用户点击一个按钮时,只会显示一条显示“你是对的”的消息,持续1秒。当我使用toast/alertdialog实现此功能时,它会执行此操作,但会在关闭dailog之前启动onclick方法中的下一条指令。如何解决此问题?

如果您正在使用toast,请将任务推迟到toast显示时使用


使用对话框时,为“Okey”按钮实现一个

我必须做的是将AlertDialog之后的任何代码放入相应的侦听器中。例如,如果在一个警报对话框之后有一堆代码,您只想根据某个响应执行这些代码,请将这些代码移到另一个方法中。然后,在肯定按钮侦听器(或否定按钮侦听器)中,将调用添加到刚才创建的相应方法中。或者,您可以将其全部塞进侦听器中,但这会降低代码的可管理性。

下面是我如何使用Handler对象完成的--- 公共类ToastActivity扩展了活动{

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main); 
    Handler mHandler = new Handler();
    for(int i=10;i>=1;i--)
    {
        Toast.makeText(this, ""+i, Toast.LENGTH_SHORT).show();
    }
    mHandler.postDelayed(new Runnable(){public void run(){
    LinearLayout t=(LinearLayout)findViewById(R.id.l);   //This task is delayed by 21 sec.
            t.setBackgroundColor(Color.CYAN);
        }
    }, 21000);           
}
}


toast之后的语句是在toast消失之后执行的。

这是一个可怕的问题,因为我自己也注意到了这一点。你会认为Android会“等待”响应,但是,您的程序会继续执行,即使它正在等待响应。在对话框关闭时,请将线程休眠一段时间。休眠UI线程会导致用户单击时它不会响应。对于dialog,这不会有任何问题,因为它会暂停,直到用户单击为止。但是对于toast,只显示一条消息,它不等待任何东西,因此继续执行下一条不需要的指令。暂停使用线程会导致它在对话框后没有响应。。使用处理程序有什么不同,你能用一段代码解释一下吗?没有,没有响应..对话框应该在执行其他语句之前出现和运行,这些语句不侦听任何响应。因为长度较短的toast会显示2秒,所以最短等待时间必须约为20000ms,因此,等待21000毫秒是硬编码的,但这是正确的。