Android
2014.12.30 12:27

간단한 Handler, Runnable 사용법

조회 수 29599 댓글 1
?

단축키

Prev이전 문서

Next다음 문서

+ - Up Down Comment Print
?

단축키

Prev이전 문서

Next다음 문서

+ - Up Down Comment Print

Handler

Handler 를 new 하게 되면 현재 new 를 실행한 thread 에 bind 되게 된다. 그래서 이 Handler 는 현재 thread 의 message queue 를 이용하게 되고, Handler 의 method 인 post() 나 sendMessage() 를 이용하면, 현재의 message queue 에 Runnable 또는 Message 가 들어가게 된다.

이렇게 message queue 에 저장된 녀석이 하나씩 처리되는데, 이때 다시 handler 가 Message() 는 handleMessage() 를 통해서 처리하고, Runnable 같은 것들은 정해진 command(run() 같은) 를 호출해서 처리하게 된다.

andorid 에서는 UI thread 에서 화면이 처리되는데, 이 UI thread 와 동시에 다른 thread 를 사용해야 할 일이 많이 생긴다. 이 때 가장 손쉬운 방법은 현재의 thread(UI thread) 에서 new Handler() 를 해 놓고, 새롭게 만든 thread 에서 특정작업을 하고, UI thread 에 반영될 녀석을 Handler 를 통해 보내는 방식으로 사용하면 된다.



package arabiannight.tistory.com.handlersimple;
 
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.widget.TextView;
 
public class MainActivity extends Activity {
 
    private TextView tv_Content;
    private Handler mHandler;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
         
        mHandler = new Handler();
         
        tv_Content = (TextView) findViewById(R.id.tv_content);
         
        mHandler.post(mRunnable); // Runnable 객체 실행
        mHandler.postAtFrontOfQueue(mRunnable); // Runnable 객체를 Queue 맨앞에 할당
        mHandler.postDelayed(mRunnable, 1000); // Runnable 객체를 1초 뒤에 실행
         
        new Handler().post(mRunnable); // 익명 객체로 실행
        new Handler().postAtFrontOfQueue(mRunnable); 
        new Handler().postDelayed(mRunnable, 1000);
         
        new Handler().post(new Runnable() { // new Handler and Runnable
            @Override
            public void run() {
                tv_Content.setText("런어블1");
            }
        });
    }
     
    private Runnable mRunnable = new Runnable() {
        @Override
        public void run() {
            tv_Content.setText("런어블1");
        }
    };
     
} // class end


Dreamy의 코드 스크랩

내가 모으고 내가 보는

List of Articles
번호 분류 제목 날짜 조회 수 추천 수
386 LINUX 리눅스 시스템 시작시에 자동 실행할 파일 등록하기 2015.09.30 10668 0
385 LINUX 리눅스 부팅시 명령스크립트 실행하기 2015.09.30 10955 0
384 LINUX 리눅스 명령행에서 메일 보내기(send mail from linux command line) 2019.11.25 9674 0
383 LINUX 리눅스 그룹관리 (groupadd, groupmod, groupdel) 2016.02.23 9015 0
382 LINUX 리눅스 계정 목록 보기 2016.03.21 8071 0
381 MFC 레지스트리 쓰기, 읽기 함수 정리 2011.07.26 31694 0
380 Pi 레귤레이터(3.3V 1A) KA78R33 데이터시트 file 2019.08.20 4455 0
379 Pi 라즈베리파이를 크롬캐스트 처럼 사용하는 방법 - RaspiCast 2017.10.17 9764 0
378 Pi 라즈베리파이를 NAS로 사용하기 2017.10.18 6411 0
377 Pi 라즈베리파이 커널 컴파일 2017.10.18 6769 0
376 Pi 라즈베리파이 적외선(IR) 리모컨 송신/수신 - LIRC Library 2017.10.17 8370 0
375 Pi 라즈베리파이 음성인식 S/W 2018.04.26 7103 0
374 Pi 라즈베리파이 웹페이지 자동 실행 설정 방법 secret 2020.11.03 0 0
373 Pi 라즈베리파이 내 작업 명령 secret 2019.06.10 0 0
372 Pi 라즈베리파이 PI CAMERA 설치하기 2018.04.24 9987 0
목록
Board Pagination ‹ Prev 1 ... 4 5 6 7 8 9 10 11 12 13 ... 34 Next ›
/ 34

나눔글꼴 설치 안내


이 PC에는 나눔글꼴이 설치되어 있지 않습니다.

이 사이트를 나눔글꼴로 보기 위해서는
나눔글꼴을 설치해야 합니다.

설치 취소

Designed by sketchbooks.co.kr / sketchbook5 board skin

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5