Android Honeycomb: NetworkOnMainThreadException даже при использовании AsyncTask и без строгого режима?

Я столкнулся с 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.

16
задан Community 23 May 2017 в 12:09
поделиться