안드로이드는 백그라운드에서 실행되어야 하는 기능을 서비스라는 애플리케이션 구성요소로 정의합니다.
하지만 별도의 프로세스가 아닌 동일한 프로세스 내에서 동시에 다른 작업을 해야 한다면 멀티 스레드 방식을 사용할 수 있습니다. 현재 수행되는 작업 이외의 기능를 동시에 처리하고자 할 때 새로운 스레드를 만들어 처리할 수 있습니다. 안드로이드에서 UI처리를 위해 사용되는 기본 스레드는 '메인스레드'라고 부릅니다. 이 메인스레드에서 이미 UI를 접근하고 있으므로 새로 생성한 다른 스레드에서는 핸들러(Handler) 객체를 이용해서 메시지를 전달 함으로써 메인스레드에서 처리하도록 만들 수 있습니다. 1. Thread 사용하기 안드로이드에서는 표준 자바의 스레드를 그대로 사용할 수 있으므로 가장 단순한 방법을 알아보도록 하겠습니다. 스레드는 new 연산자를 이용하여 객체를 생성한 후 start()메소드를 호출하면 시작할 수 있습니다. Thread 클래스에 정의된 생성자는 크게 파라미터가 없는 경우와 Runnable 객체를 파라미터로 가지는 두가지로 구분할 수 있습니다.
BackgroundThread 클래스 내에서 1초마다 value 값을 1씩 더해주는 스레드 예제 입니다.
이 두번째 방법은 클래스 내부에서 스레드를 사용하는 방법 입니다. 똑같은 기능을 수행하게 됩니다. 1. Runnable 사용하기 Runnable 객체에 메시지를 전송할수 있는 방법이 있는데. 이때 사용하는 게 핸들러 객체 입니다. Handler 의 post() 메서드를 이용해서 Runnable 객체를 실행 시킬 수 있습니다.
ProgressRunnable 클래스를 실행하기 위해서 handler.post(runnable1); 명령을 이용해 호출하는 함수 예제 입니다.
|
|||||||||||