Me encuentro con un NetworkOnMainThreadException con mi aplicación Android 3.0. Buscando una solución Encontré this, pero si entiendo esto correctamente, la configuración predeterminada sería que el modo estricto está desactivado.Android Honeycomb: ¿NetworkOnMainThreadException incluso cuando se usa AsyncTask y no hay modo estricto?
Además, todo mi acceso a la red está en un AsyncTask
, así que no veo el punto en esta Excepción de todos modos.
lo tanto, estoy bastante desesperada ahora lo que debo hacer para evitar que esto ...
Saludos cordiales, medusas
Editar:
This blog entry dice que AsyncTask debe ser lo suficientemente , pero al menos aclara el punto StrictMode.
Solución:
Apagué la StrictMode (su probablemente mejor mantener algunos ajustes, pero no podía ser molestado ...):
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
Después de eso, fueron corriendo en una "java.lang.RuntimeException: este hilo prohíbe las solicitudes HTTP", pero encontró una solución para este here. Estoy un poco confundido, sin embargo, como AndroidHttpClient
funcionó bien cuando lo usé en mi Android 2.0+ aplicación ...
solución, parte 2
Al final resultó que, utilizando AsyncTask era una buena idea pero bastante inútil si done wrong ... Así que no había nada de malo con la reacción del modo estricto. Debería haber escuchado, ¿eh? ;)
Aún es bueno saber que está activado en Honeycomb por defecto.
Gracias ... esta nueva API me está volviendo loco. ^^ No entiendo por qué una AsyncTask no se considera fuera del hilo principal ... – jellyfish
Estoy de acuerdo. ¿Qué pasa con Thread.run()? ¿Por qué incluso necesitan eso? – Chloe