본문 바로가기
개발/안드로이드 어플

[안드로이드]Looper의 목적은 무엇일까? 또 그 사용법은?

by 외노자개발 2022. 12. 8.
반응형

루퍼란 무엇일까?


루퍼는 큐에서 메시지(Runnables)를 실행하는 데 사용되는 클래스입니다. 일반 스레드에는 이러한 큐가 없습니다. 

단순 스레드에는 큐가 없습니다. 일단 실행되고 메서드의 실행이 종료한 후, thread는 다른 메시지 (Runnable)를 실행하지 않습니다.

 

 

Looper 클래스는 어디에서 사용할 수 있을까?


누군가가 복수의 메세지(Runnables)를 실행하고 싶은 경우는, thread내에 큐를 작성하는 역할을 담당하는 Looper 클래스를 사용해야 합니다. 

예를 들어 인터넷에서 파일을 다운로드하는 응용 프로그램을 만드는 동안 Looper 클래스를 사용하여 다운로드할 파일을 대기열에 넣을 수 있습니다.

 

어떻게 동작 할까?


Looper를 준비하는 prepare()방법이 있습니다. 그런 다음 loop()메소드를 사용하여 현재 스레드에 메시지 루프를 만들 수 있으며 루프가 끝날 때까지 Looper는 대기열에서 요청을 실행할 준비가 되었습니다.

 

루프 동작 코드

class LooperThread extends Thread {
      public Handler mHandler;

      @Override
      public void run() {
          Looper.prepare();

          mHandler = new Handler() {
              @Override
              public void handleMessage(Message msg) {
                  // process incoming messages here
              }
          };

          Looper.loop();
      }
  }

 

 

 

 

 

 

 

 

 

 

 

 

반응형

댓글