
Handler 객체는 메인 스레드에서만 작동할 수 있습니다. 따라서, 타이머를 설정할 때는 메인 스레드에서 Handler 객체를 생성해야 합니다.
Handler 객체를 생성할 때는 Thread를 사용할 필요가 없습니다. 대신, HandlerThread 또는 AsyncTask를 사용하여 백그라운드 스레드에서 작업을 수행할 수 있습니다.
Handler 객체를 생성하는 예제는 다음과 같습니다.
#hostingforum.kr
java
Handler handler = new Handler(Looper.getMainLooper());
이 예제에서 Looper.getMainLooper()는 메인 스레드의 Looper 객체를 반환합니다. Handler 객체를 생성할 때 이 Looper 객체를 사용하여 메인 스레드에서 Handler 객체를 생성할 수 있습니다.
HandlerThread를 사용하는 예제는 다음과 같습니다.
#hostingforum.kr
java
HandlerThread handlerThread = new HandlerThread("HandlerThread");
handlerThread.start();
Handler handler = new Handler(handlerThread.getLooper());
이 예제에서 HandlerThread를 사용하여 백그라운드 스레드를 생성하고, 그 스레드의 Looper 객체를 사용하여 Handler 객체를 생성할 수 있습니다.
AsyncTask를 사용하는 예제는 다음과 같습니다.
#hostingforum.kr
java
AsyncTask task = new AsyncTask() {
@Override
protected Void doInBackground(Void... voids) {
// 백그라운드 작업을 수행합니다.
return null;
}
};
이 예제에서 AsyncTask를 사용하여 백그라운드 작업을 수행할 수 있습니다. Handler 객체를 생성할 때는 AsyncTask의 getLooper() 메소드를 사용하여 백그라운드 스레드의 Looper 객체를 얻을 수 있습니다.
Handler 객체를 사용하여 타이머를 설정하는 예제는 다음과 같습니다.
#hostingforum.kr
java
Handler handler = new Handler(Looper.getMainLooper());
handler.postDelayed(new Runnable() {
@Override
public void run() {
// 타이머가 끝난 후 수행할 작업을 수행합니다.
}
}, 1000); // 1초 후에 타이머가 끝납니다.
이 예제에서 Handler 객체를 사용하여 1초 후에 타이머가 끝나고, 그 후에 수행할 작업을 수행할 수 있습니다.
2025-06-09 21:44