안드로이드에서 pause나 sleep하는 방법
조회수 22464회
두 라인 사이에 잠깐의 딜레이를 주고싶은데요. 설명하자면 유저가 버튼을 클릭하면 버튼의 배경을 바꿔서 보여주고 다시 1초뒤에 원래 배경으로 돌아오게 만들고 싶어요.
thisbutton.setBackgroundResource(R.drawable.icon);
버튼을 클릭했을때
thisbutton.setBackgroundResource(R.drawable.defaultcard);
1초뒤에
이런식으로 말이에요 그래서 thead를 멈추려고
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
저 위에 두 라인 사이에 이런 코드를 삽입했는데 제대로 동작을 안해요.
new Reminder(5);
public class Reminder {
Timer timer;
public Reminder(int seconds) {
timer = new Timer();
timer.schedule(new RemindTask(), seconds*1000);
}
class RemindTask extends TimerTask {
public void run() {
System.out.format("Time's up!%n");
timer.cancel(); //Terminate the timer thread
}
}
}
뭐 이런식으로도 해봤는데 역시 동작을 안하네요... 어쩌면 좋을까요?
1 답변
-
Handler의 postDelayed메소드를 이용하면 쉽게 해결할수 있습니다.
@Override public void onClick(View v) { my_button.setBackgroundResource(R.drawable.icon); // 2초간 멈추게 하고싶다면 Handler handler = new Handler(); handler.postDelayed(new Runnable() { public void run() { my_button.setBackgroundResource(R.drawable.defaultcard); } }, 2000); // 2000은 2초를 의미합니다. }
댓글 입력