Androidはワンツーパンチ 三歩進んで二歩下がる

プログラミングやどうでもいい話

Android3.x以降はStrictMode がデフォルトで有効になっているため、UIスレッドで通信を行うとNetworkOnMainThreadExceptionが発生する

メモです。自分用の忘備録なのでわかりやすく書いてないです。ごめんなさい。

Android3.x以降はStrictMode がデフォルトで有効になっているため、UIスレッドで通信を行うとNetworkOnMainThreadExceptionが発生する
という件について。

AsyncTaskのonPostExecute()で、DefaultHttpClientをシャットダウンしてたら、
Android2.3では正常に動いていたプログラムがAndroid4.0の端末では例外を起こした。

調べてみると表題のような状態だったので、
doInBackground()の中でポスト処理の後に
mHttpClient.getConnectionManager().shutdown();
のようにしたらOKだった。

これからも気をつけよう。