studio - progressdialog android
Acerca del Diálogo de progreso de Android. ¿Evitar? (2)
Estaba leyendo acerca de Diálogos en el sitio de Android y me encontré con una sección que decía "Evita el progreso del registro".
Aquí está el enlace: http://developer.android.com/guide/topics/ui/dialogs.html
¿Eso significa que recomiendan no usarlo? Realmente necesito una ventana emergente que muestre el progreso mientras mi aplicación está haciendo un trabajo de fondo.
¿Eso significa que tengo que crear mi propio cuadro de diálogo de progreso utilizando la clase ProgressBar? ¿Cómo podría uno construirlo por cierto? Cualquier ayuda es apreciada.
Editar: con Android O, ProgressDialog ahora está oficialmente obsoleto . Un enfoque alternativo es sugerido
Esta clase ha quedado obsoleta en el nivel O de API. Utilice un indicador de progreso como ProgressBar en línea dentro de una actividad en lugar de usar este cuadro de diálogo modal.
Respuesta original:
Todo esto es desde una perspectiva de diseño e interacción de usuario, no desde una perspectiva de código.
Las pautas de la interfaz de usuario le dicen que evite usar ProgressDialog
no porque la clase esté en desuso (no es en el momento de escribir esta respuesta), sino porque obliga al usuario a evitar interactuar con la aplicación y simplemente mirar la pantalla.
Tome la aplicación Google Play como ejemplo. Mientras descarga una aplicación / actualización, aún puede deslizar, navegar, etc. Puede participar con la aplicación mientras está haciendo algo.
Si es absolutamente necesario que el usuario deje de interactuar hasta que la barra de progreso finalice, hágalo de todos modos. Los documentos simplemente dicen que puede encontrar mejores formas de hacerlo (de ahí el enlace a Progreso y Actividad ).
Con ProgressDialog desactualizado en Android O. Debería crear una ProgressBar y mostrarla estableciendo su visibilidad. Uso DelayedProgressDialog desde https://github.com/Q115/DelayedProgressDialog. Hace lo mismo que ProgressDialog con el beneficio adicional de un retraso si es necesario.
Uso:
DelayedProgressDialog progressDialog = new DelayedProgressDialog();
progressDialog.show(getSupportFragmentManager(), "tag");