¿Cómo configurar el diálogo de progreso para que no se pueda cancelar cuando se administra como un fragmento?

Estoy usando un ProgressDialog administrado como un Fragment . Incluso si configuro el ProgressDialog para que no sea cancelable, el botón BACK seguirá funcionando para eliminar ese Fragment de la pila. Mi clase interna se ve así:

 public static class ProgressDialogFragment extends DialogFragment { private DialogStyle dialogStyle; public static ProgressDialogFragment newInstance(String title, String message) { ProgressDialogFragment fragment = new ProgressDialogFragment(); Bundle args = new Bundle(); args.putString("title", title); args.putString("message", message); fragment.setArguments(args); return fragment; } public void setDialogStyle(DialogStyle dialogStyle) { this.dialogStyle = dialogStyle; } @Override public ProgressDialog onCreateDialog(Bundle savedInstanceState) { String title = getArguments().getString("title"); String message = getArguments().getString("message"); ProgressDialog progressDialog = new ProgressDialog(getActivity()); progressDialog.setTitle(title); progressDialog.setMessage(message); if(dialogStyle!=null) { switch (dialogStyle) { case CANCELABLE: progressDialog.setCancelable(true); break; case NON_CANCELABLE: progressDialog.setCancelable(false); break; } } else { progressDialog.setCancelable(false); } progressDialog.show(); return progressDialog; } } 

Y entonces el método que expongo es:

 public void showProgressDialog(String title, String message, DialogStyle dialogStyle) { Fragment prev = fragmentManager.findFragmentByTag("progress dialog"); if(prev!=null) { ft.remove(prev); } ft.addToBackStack(null); DialogFragment newFragment = ProgressDialogFragment.newInstance(title, message); ((ProgressDialogFragment)newFragment).setDialogStyle(dialogStyle); newFragment.show(fragmentManager, "progress dialog"); } 

Así que la obvia confusión aquí es que el botón BACK elimina el ProgressDialog porque está siendo administrado como un Fragment . Entonces, ¿cómo puedo hacerlo para que el Dialog no se puede cancelar?

Parece extraño intentar algo como:

 @Override public void onBackPressed() { if(fragmentManager.fragmentManager.findFragmentByTag("progress dialog")!=null) { } } 

En lugar de ProgressDialog, ¿por qué no intenta setCancelable(false) en DialogFragment?

También puede utilizar setCancelable(false) en ProgressDialog

  • Android Fragments recreado en el cambio de orientación
  • Fragmentos no visibles después de cambiar tabulación en FragmentTabHost anidado
  • Problema extraño que refresca ViewPager con nuevo contenido:
  • ¿Cómo utilizar Fragments y objectAnimator en versiones anteriores de Android?
  • Cargar todos los fragmentos en la apertura de la aplicación
  • Obtener Fragmento dinámicamente adjunto a <FrameLayout>?
  • Los fragmentos de Viewpager de Android se actualizan al pasar
  • Android: ListFragment refresh utilizando notifyDataSetChanged () con el adaptador personalizado no funciona
  • ¿Podría mantener la posición de ScrollView después de volver a Fragment anterior como ListView?
  • Cómo obtener una indicación de que el usuario está intentando desplazarse más en un ViewPager
  • Cómo agregar fragmentos de forma programática en relativelayout
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.