为什么警报对话框没有按正确顺序显示?

时间:2013-08-02 16:12:05

标签: java android handler alertdialog

我对一个接一个地显示警告对话框有疑问。 我试图显示三个警告对话框,但每次第三个出现时,第二个应该是第二个,在这种情况下,第一个应该是最后一个。 我希望它们按照代码顺序显示。 请考虑代码并建议我为什么会发生这种情况并提供可靠的解决方案。

私有静态类MyHandler扩展了Handler {

    MainActivity activity;

    public MyHandler(MainActivity activity){
        this.activity = activity;
    }
    @Override
    public void handleMessage(Message msg) 
    {
        if(activity.connectionToTupleSpace == true)
        {
            activity.showDialog("Dialog 1", "It should be displayed first");
            activity.showDialog("Dialog 2", "It should be displayed second");
            activity.showDialog("Dialog 3", "It should be displayed third");
        }
        else
        {
            Toast.makeText(activity.getBaseContext(), " No connection to Tuple Space Server", Toast.LENGTH_SHORT).show();

        }
    }
};//handler for Thread



private void showDialog(String title, String message)
{
    AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
    builder.setTitle(title);
    builder.setMessage(message);
    builder.setPositiveButton("OK", null);
    builder.show();
}

2 个答案:

答案 0 :(得分:1)

它们以正确的顺序显示。

首先显示对话框编号1。 然后在1号的TOP TOP上显示对话框号2。 然后在第2位上显示对话框编号3。

这意味着将首先显示数字3,因为这是您添加的最新数字。

所以最简单的解决方案是:只需颠倒顺序,首先显示3,然后是2,然后是1:)

答案 1 :(得分:0)

据我所知,在你的代码中,你使用了3个MainActivity实例,所以有3个活动,所以如果你知道“堆栈”,你会发现它是合理的。我认为你应该增加值来为每个AlertDialog设置优先级。