2017-09-24 25 views
-1

我有后台运行的服务的话,当它通过一个动作活动时收到此广播是 发送广播的活动触发显示一个对话框,问题是当服务被触发两个或三个...等次在同一时间活动显示对方(dialog3是对dialog1的顶部dialog2的顶部),我需要在对话框出现在它们被触发像同一量级的前三名对话框(dialog1是在dialog2的顶部是在dialog3的顶部)进行对话出现次序

回答

0

你更好地展示,直到第一个完成停止那些2和3对话框。你可以像下面的一些条件做到这一点:(更像是一个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); 
} 
} 

这样,他们会和你想的一样顺序显示。