1

我打電話與處理程序Web服務並顯示進度條與進度對話框永遠旋轉的活動恢復


// Create Progress dialogs 
    @Override 
    protected Dialog onCreateDialog(int id) { 
     switch (id) { 
     case mDialogProgress: 
      dataLoadProgress = new ProgressDialog(this); 
      dataLoadProgress.setMessage("Loading..."); 
      dataLoadProgress.setIndeterminate(true); 
      dataLoadProgress.setCancelable(false); 
      dataLoadProgress 
        .setProgressStyle(android.R.attr.progressBarStyleSmallTitle); 
      return dataLoadProgress; 
     default: 
      return null; 
     } 
    } 

我已經調用下面的方法幫助的onStop停止,如果它的表現。

 @Override 
     public void onStop() { 
      if (dataLoadProgress != null && dataLoadProgress.isShowing()) 
       stopThread(); 
      super.onStop(); 
     } 

     private synchronized void stopThread() { 
     try { 
      if (getServerData != null) { 
       if (dataLoadProgress != null && dataLoadProgress.isShowing()) 
        dismissDialog(mDialogProgress); 
       getServerData = null; 
       // // mHandler = null; 
      } 
     } catch (Exception e) { 
      CommonFunctions.DoCatchOperation(e); 
     } 
     } 

現在,當我的應用程序轉到後臺模式和簡歷,它顯示progressdialog,它永遠旋轉和使用後退按鈕爲setCancelable(假)我不能阻止它;

我有打電話給我stopThread()的onResume(),如果進展顯示那麼它會停下來,但是我調用web服務的的onCreate,並開始顯示ProgressDialog和下一個實例嘗試onCreate onResume調用後,我的ProgressDialog被解除。

所以我想停止這個永遠在後臺旋轉。

+0

天啊。你和實現了這個線程機制。爲什麼?您可以嘗試使用AsyncTask。你正在用這種方式顯示對話框? –

+0

@PareshMayani我現在有32項活動,我正在實施的代碼..所以只是試圖修復現有的代碼,如果可能的話.. –

+0

32活動那麼什麼?你不能定義超級AsyncTask類並在所有這32個活動中擴展它。您只需在超級基礎任務中編寫對話框顯示。 –

回答

2

我在這裏只添加了一行條件。
if(dataLoadProgress == null)它適用於我。

// Create Progress dialogs 
@Override 
protected Dialog onCreateDialog(int id) { 
    switch (id) { 
    case mDialogProgress: 
     if(dataLoadProgress == null) 
      dataLoadProgress = new ProgressDialog(this); 
     dataLoadProgress.setMessage("Loading..."); 
     dataLoadProgress.setIndeterminate(true); 
     dataLoadProgress.setCancelable(false); 
     dataLoadProgress 
       .setProgressStyle(android.R.attr.progressBarStyleSmallTitle); 
     return dataLoadProgress; 
    default: 
     return null; 
    } 
}