Android Honeycomb: NetworkOnMainThreadException даже при использовании AsyncTask и без строгого режима? - PullRequest
16 голосов
/ 08 июня 2011

Я сталкиваюсь с 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 по умолчанию.

Ответы [ 2 ]

14 голосов
/ 02 ноября 2011

В Android включен Honeycomb StrictMode, отключите его, добавив код в функцию onCreate () ...

@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState); 
        setContentView(R.layout.main);       
        StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
        StrictMode.setThreadPolicy(policy);
    }
5 голосов
/ 08 июня 2011

StrictMode по умолчанию включен в Honeycomb.

См. Скажем ссылка , в частности penaltyDeathOnNetwork().Я столкнулся с подобной проблемой.

...