2017-09-24 2 views
-1

Ich habe einen Dienst läuft im Hintergrund, wenn es durch eine Aktion ausgelöst wird es Broadcast zu Aktivität senden, wenn die Aktivität diese Sendung erhalten zeigt einen Dialog, das Problem ist, wenn der Dienst zwei oder drei ausgelöst wird ... etc mal zur gleichen Zeit zeigt die Aktivität drei Dialog übereinander (dialog3 ist oben auf dialog2 über dialog1) Ich brauche den Dialog in der gleichen Reihenfolge, in der sie ausgelöst werden (dialog1 ist oben auf dialog2 ist oben auf dialog3)Make Dialog erscheint auf Bestellung

Antwort

0

Sie besser aufhören, diese 2 und 3 Dialog zu zeigen, bis der erste fertig ist. Sie können es wie unten beschrieben von einem gewissen Zustand tun: (mehr wie ein psudo Code)

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); 
} 
} 

auf diese Weise werden sie mit der gleichen Reihenfolge möchten Sie angezeigt.

Verwandte Themen