Я столкнулся с NetworkOnMainThreadException с моим Android 3.0. В поисках решения я нашел этот, но если я это правильно понял, настройка по умолчанию будет заключаться в том, что строгий режим отключен.
Кроме того, весь мой доступ к сети находится в AsyncTask
, поэтому я все равно не вижу смысла в этом исключении.
Итак, я совершенно отчаянно сейчас, что я должен сделать, чтобы предотвратить это...
С уважением, медузы
Edit:
В этой записи в блоге говорится, что AsyncTask должно быть достаточно, но, по крайней мере, уточняет точку StrictMode.
Решение:
Я отключил StrictMode (возможно, лучше сохранить некоторые настройки, но я не мог беспокоиться...):
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
После этого я столкнулся с "java.lang.RuntimeException: этот поток запрещает HTTP-запросы", но нашел решение для этого здесь. Я немного смущен, однако, поскольку AndroidHttpClient
отлично работал, когда я использовал его в своем приложении Android 2.0+...
Решение, part2
Как выяснилось, использование AsyncTask было хорошей идеей, но довольно бесполезно, если сделано неправильно... Так что в реакции строгого режима не было ничего плохого. Должен был выслушать, э?;)
По-прежнему полезно знать, что он активирован на Honeycomb по умолчанию.