Tengo un código de Android que usa un proceso de fondo para conectarse de forma rutinaria (por ejemplo cada hora) a un origen de contenido en la web para verificar contenido actualizado. A medida que los nuevos usuarios descargan la aplicación y la ejecutan por primera vez, parece (y esto es solo "parece por el momento") que en esta situación de primera ejecución, debido a que los DNS de nuestros servidores ya no están en la memoria caché en el dispositivo, esas primeras series de conexiones fallan con la temida UnknownHostException: Host no se resuelve. Y, por supuesto, la aplicación lo intenta más tarde y (de nuevo, "parece que") todo está funcionando, quizás porque el sistema operativo ha tenido tiempo para resolver el problema. direcciónAndroid java.net.UnknownHostException: el host no está resuelto (pregunta de estrategia)
Así que, mi pregunta (s) es: (1) ¿Los desarrolladores de Android también ven este comportamiento con sus aplicaciones implementadas? La primera vez, una serie de problemas de "host no resuelto" que se solucionan más tarde. 2) ¿Alguien tiene una mejor estrategia para "calentar el DNS" por así decirlo para que las primeras conexiones reales funcionen? O quizás simplemente vuelva a intentarlo con algún bucle de retroceso cuando se encuentre con este ¿verdad? Estaba pensando en tener un hilo separado que intente obtener un pequeño archivo de texto de nuestro servidor y tenerlo simplemente en bucle hasta que lo tenga y tal vez (no estoy seguro de esta parte) bloquear las otras conexiones de red salientes hasta que tenga éxito.
En cualquier caso, he leído a través de una parte de las respuestas a varias preguntas redactadas de manera similar aquí en desbordamiento de pila y acabo de asegurar a todos que
<uses-permission android:name="android.permission.INTERNET" />
se fija en mi archivo de manifiesto :)
Hemos encontrado el mismo problema. Para analizarlo, implementamos un icmp ping que envía paquetes a un dns predeterminado (8.8.8.8). Lo que observamos fue que a pesar de que la prueba de ip-ping fue exitosa (por lo tanto, hay una conexión a Internet disponible) todavía encontramos la UnknownHostException. ¿Alguna idea de lo que podría ser la razón para esto? – icyerasor