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