Я сталкиваюсь с 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+ ...
Solution, part2
Какоказалось, что использование AsyncTask было хорошей идеей, но довольно бесполезно, если сделано неправильно ... Так что в реакции строгого режима не было ничего плохого.Должен был слушать, э?;)
Еще приятно знать, что он активирован в Honeycomb по умолчанию.