我对一个接一个地显示警告对话框有疑问。 我试图显示三个警告对话框,但每次第三个出现时,第二个应该是第二个,在这种情况下,第一个应该是最后一个。 我希望它们按照代码顺序显示。 请考虑代码并建议我为什么会发生这种情况并提供可靠的解决方案。
私有静态类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();
}
答案 0 :(得分:1)
它们以正确的顺序显示。
首先显示对话框编号1。 然后在1号的TOP TOP上显示对话框号2。 然后在第2位上显示对话框编号3。
这意味着将首先显示数字3,因为这是您添加的最新数字。
所以最简单的解决方案是:只需颠倒顺序,首先显示3,然后是2,然后是1:)
答案 1 :(得分:0)
据我所知,在你的代码中,你使用了3个MainActivity实例,所以有3个活动,所以如果你知道“堆栈”,你会发现它是合理的。我认为你应该增加值来为每个AlertDialog设置优先级。