안드로이드에서 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
            }
        }  
    }

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

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

ᕕ( ᐛ )ᕗ
로그인이 필요합니다

작성한 답변에 다른 개발자들이 댓글을 작성하거나 댓글에 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.