按顺序显示对话框

时间:2017-09-24 11:27:14

标签: android dialog

我有一个在后台运行的服务,然后由一个动作触发它 当活动接收到此广播时向活动发送广播显示对话框,问题是当服务被触发两三次等时间活动同时显示三个对话框(对话框3位于顶部)对话框1顶部的对话框2)我需要对话框出现在它们被触发的相同顺序上(对话框2位于对话框2顶部,对话框3)

1 个答案:

答案 0 :(得分:0)

你最好停止显示第二个和第三个对话框,直到第一个完成。你可以通过以下某些条件来做到这一点:(更像是一个psudo代码)

 public void processBroadcast(BroadcastModel broadcastModel)
 {
  if(!Const.isAnyDialogShowing)
  {
    CustomDialog dialog=new CustomDialog(broadcastModel);
    dialog.setOnDismissListener(new DialogInterface.OnDismissListener() {
        @Override
        public void onDismiss(DialogInterface dialog) {
            Const.isAnyDialogShowing = false;
            if(broadcastList.size > 0)
            {
               broadcastModel newBroadcastModel = broadcastList.remove(0);
               processBroadcast(newBroadcastModel);
            }
        }
    });
    Const.isAnyDialogShowing = true;
    dialog.Show();
 }
 else
 {
    broadcastList.add(broadcastModel);
 }
}

通过这种方式,它们将以您想要的相同顺序显示。