Android 3.0 アプリでNetworkOnMainThreadExceptionが発生しました。これを見つけた解決策を探していますが、これを正しく理解していれば、デフォルト設定では厳密モードはオフになっています。
また、すべてのネットワーク アクセスが にあるAsyncTask
ため、とにかくこの例外の意味がわかりません。
では、これを防ぐにはどうすればいいのか、今とても必死です...
よろしく、クラゲ
編集:
このブログ エントリは、AsyncTask で十分であると述べていますが、少なくとも StrictMode ポイントを明確にしています。
解決:
StrictMode をオフにしました (おそらくいくつかの設定を保持した方がよいでしょうが、気にすることはできませんでした...):
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
その後、「java.lang.RuntimeException: This thread forbids HTTP requests」に遭遇しましたが、こちらで解決策を見つけました。AndroidHttpClient
Android 2.0以降のアプリで使用したときはうまくいったので、少し混乱しています...
ソリューション、パート 2
結局のところ、AsyncTask を使用するのは良いアイデアでしたが、間違った使い方をするとまったく役に立ちませんでした。つまり、strict モードの反応には何の問題もありませんでした。聞くべきでしたか?;)
デフォルトで Honeycomb で有効になっていることを知っておくとよいでしょう。