안드로이드 버전 3.0 이상에서 UI Thread에서 인터넷 연결시 runtime 에러 안 나게 하는 법

안드로이드 버전 3.0 이상부터는 인터넷 연결은 쓰레드나 핸들러에서 처리하도록 정책이 바뀌었다. 그래서 UI 쓰레스에서 인터넷 연결을 시도하면(HttpURLConnection과 같은 것으로) 실행 타임에서 에러가 발생한다. 


그런데 아래와 같은 코드를 인터넷 연결을 시도하는 코드 앞에

표시해 두면 안드로이드 버전 3.0 이상에서도 정상적으로 잘 실행이 된다. 

onCreate()에 다음과 같이...


    @Override

    public void onCreate(Bundle savedInstanceState) {

     if (Build.VERSION.SDK_INT > 9){

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

      StrictMode.setThreadPolicy(policy);

     }

     

      super.onCreate(savedInstanceState);

      setContentView(R.layout.get_signature_from_toodledo);

        

      txt = (TextView)findViewById(R.id.txt);

    }




+ Recent posts