備忘録

備忘録

Android 非同期処理を強制しない方法

Ⅰ. はじめに

Android 3.0以降では ネットワーク処理をメインスレッドで行うと以下の例外を吐くようになりました。

java.net.SocketException: android.os.NetworkOnMainThreadException

Ⅱ. 強制しない方法

以下をonCreateなどに追加するとメインスレッドでネットワーク処理を行ってもエラーが出ません。

StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);