1

Я звоню WebServices с обработчиком и показывая ProgressBar с помощьюProgress Dialog закручивает навсегда на активность Резюме


// 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(), что если прогресс виден, он будет остановить, но Im вызова веб-сервиса в OnCreate и начинает показывать ProgressDialog и в следующем экземпляре после того, как onCreate onResume вызывает, и мой ProgressDialog отклоняется.

Так что я хочу остановить это вращение навсегда в фоновом режиме.

+0

О, мой бог. Вы и внедрили этот механизм Threading. Зачем? Вместо этого вы можете попробовать AsyncTask. И вы показываете Dialog таким образом? –

+0

@PareshMayani У меня сейчас 32 вида деятельности, и я работаю над реализованным кодом .. так что просто пытаюсь исправить с помощью существующего кода, если это возможно ... –

+0

32 Деятельность тогда какая? Не можете ли вы определить класс Super 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; 
    } 
}