안드로이드 스레드 (thread) 예제 - http 응답 코드 확인하기

프로그래밍/Android (Java)|2021. 1. 25. 16:35
반응형

사이트 접속 코드가 들어가면 순차 처리 도중 화면이 잠깐 멈추는 것 같은경우가 발생하여

가 되지 않고, 작업을 백그라운드로 처리하여 화면 멈춤 현상이 없어지게 됩니다.

다만 화면과 동기화 되는 toast 작업 등은 처리되지 않는것 같아, preferences 에 처리값 입력 되는 것이 감지될때 꺼내오는 식으로 처리해야 할 것 같습니다.

(toast 결과를 보려면 다시 호출)



        // pref 준비

        final SharedPreferences pref = getDefaultSharedPreferences(this);

        final SharedPreferences.Editor edit = pref.edit();


        int bb = pref.getInt("test", 0);

        Toast.makeText(getBaseContext(), "결과 코드 : " + bb, Toast.LENGTH_SHORT).show();


        // thread 내용

        t = new Thread(new Thread(){

            private int aa; // 스레드 내에서 정의된 변수는 사용시 모두 앞에 this. 를 붙여줘야 함

            private URL url;

            private HttpURLConnection connection = null;

            @Override

            public void run() {

                try {

                    this.url = new URL("http://sysdocu.tistory.com");

                    this.connection = (HttpURLConnection) this.url.openConnection();

                    this.aa = this.connection.getResponseCode(); // http 응답 코드 넣기

                } catch (IOException e) {

                    e.printStackTrace();

                    this.aa = 999; // 접속 불가시 임의의 값

                }

                edit.putInt("test", this.aa); // preferences 에 값 저장

                edit.commit();

            }

        });


        t.start();



작업이 끝나면 자연스레 종료되지만, 수동으로 종료하고자 할 경우 아래 코드를 사용합니다.


t.interrupt();




반응형

댓글()