안드로이드에서 pause나 sleep하는 방법


두 라인 사이에 잠깐의 딜레이를 주고싶은데요. 설명하자면 유저가 버튼을 클릭하면 버튼의 배경을 바꿔서 보여주고 다시 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
            }
        }  
    }

뭐 이런식으로도 해봤는데 역시 동작을 안하네요... 어쩌면 좋을까요?

  • 2016년 01월 29일에 작성됨

조회수 1112


1 답변


좋아요
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초를 의미합니다. 
}
  • 2016년 01월 29일에 작성됨

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close