进行对话出现次序
问题描述:
我有后台运行的服务的话,当它通过一个动作活动时收到此广播是 发送广播的活动触发显示一个对话框,问题是当服务被触发两个或三个...等次在同一时间活动显示对方(dialog3是对dialog1的顶部dialog2的顶部),我需要在对话框出现在它们被触发像同一量级的前三名对话框(dialog1是在dialog2的顶部是在dialog3的顶部)进行对话出现次序
答
你更好地展示,直到第一个完成停止那些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);
}
}
这样,他们会和你想的一样顺序显示。