2015-05-23 52 views
2

ProgressDialog出現問題。在init()方法中我有progressDialog.show(),但是在那個方法裏面我使用了兩個後臺任務方法,它們在加載完成後會進入progressDialog.dismiss(),但是progressDialog再次顯示並循環。該怎麼辦?Java(Android) - ProgressDialog出現兩次

ProgressDialog ringProgressDialog; 


    @AfterViews 
    void init() { 
     //launch ProgressDialog 
     ringProgressDialog = new ProgressDialog(this); 
     ringProgressDialog.setMessage("Ładowanie rozkładów\nz najbliższej stacji"); 
     ringProgressDialog.setIndeterminate(true); 

     if(!ringProgressDialog.isShowing()) 
      ringProgressDialog.show(); 

     restBackgroundTrainLeft.getTrains(closestStation.id, endStationLeft.id, currentHour); 
     restBackgroundTrainRight.getTrains(closestStation.id, endStationRight.id, currentHour); 

    } 




    //region after BACKGROUND TASK METHODS 
    public void updateTrainsLeft(TrainsList trainsList){ 
     if(trainsList != null){ 
      adapterLeft.update(trainsList); 
     } 

     if(ringProgressDialog.isShowing()) 
      ringProgressDialog.dismiss(); 
    } 

    public void updateTrainsRight(TrainsList trainsList){ 
     if(trainsList != null) { 
      adapterRight.update(trainsList); 
     } 

     if(ringProgressDialog.isShowing()) 
      ringProgressDialog.dismiss(); 
    } 
//endregion 
+0

你有沒有找到一個解決辦法? –

回答

0

雖然沒有完全匹配,但我遇到了同樣的問題。 我解決了這個問題 - 我初始化進度對話框檢查null。

if (ringProgressDialog == null){ 
    ringProgressDialog = new ProgressDialog(this); 
} 

ringProgressDialog.setCancelable(true); 
ringProgressDialog.setMessage("Loading..."); 
ringProgressDialog.show(); 

,並在dismiss-

if (ringProgressDialog != null && ringProgressDialog.isShowing()) { 
     ringProgressDialog.dismiss(); 
    }