안드로이드 스레드 (thread) 예제 - http 응답 코드 확인하기
사이트 접속 코드가 들어가면 순차 처리 도중 화면이 잠깐 멈추는 것 같은경우가 발생하여
가 되지 않고, 작업을 백그라운드로 처리하여 화면 멈춤 현상이 없어지게 됩니다.
다만 화면과 동기화 되는 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();
'프로그래밍 > Android (Java)' 카테고리의 다른 글
스레드 (thread) 가 종료되기까지 기다리기 (0) | 2021.01.26 |
---|---|
스레드 (thread) 안에서 toast 사용하기 (0) | 2021.01.26 |
Failed to install the following Android SDK packages as some licences have not been accepted. 에러 해결 (0) | 2021.01.25 |
안드로이드 Sound Play 사운드 재생 (0) | 2021.01.21 |
setImageResource 에 변수를 이용해 적용하기 (0) | 2021.01.20 |