Tengo un servicio en segundo plano que realiza trabajos pesados dentro de una transacción una vez al día. Si el usuario inicia la aplicación en este momento, quiero que se quede quieto hasta que termine (alrededor de 10 segundos más o menos). ¿Cuál es la mejor manera de hacer esto en todas las actividades? Compruebe si el servicio se está ejecutando en la función "onResume" de cada actividad. ¿Y cómo sabemos cuándo se hace? Transmisiones locales Estoy adivinando ...¿La mejor manera de congelar y la aplicación mientras la base de datos está haciendo un trabajo de fondo pesado?
¿Mejores prácticas a alguien?
ACTUALIZACIÓN: He logró detener "onResume" hasta que mi servicio se realiza. El problema es que el usuario acaba de ver una pantalla en blanco hasta entonces. Probé los diálogos de progreso y los diálogos regulares mientras onResume está en pausa. Pero todos se muestran solo cuando onResume regresa y eso frustra el propósito. En otras palabras, de diálogo de progreso no "show" inmediatamente después "show()" se llama :(
Sí, ¡he decidido salir de la pantalla solo si el usuario inicia la aplicación cuando el servicio está ocupado! Desafortunadamente, un mensaje de "Brindis" no parece funcionar cuando he llamado a finish(): | –