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

조회수 22463회

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

  • 좋아요

    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초를 의미합니다. 
    }
    

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)