마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

버튼을 잘못눌렀을때 타이머에 패널티를 주고싶어요

0 추천

          if(x != m_iStep){
           pool2.play(touch, 1, 1, 0, 0, 1);
//이부분이 잘못눌렀을때의 이벤트입니다
}
private Runnable backgroundTread1 = new Runnable() {
   public void run() {
    if (Thread.currentThread() == theThread1) {
     while(m_bStart)
     {
      try {
       theHandle.sendMessage(theHandle
         .obtainMessage());
       Thread.sleep(100);

      } catch (final InterruptedException e) {
       return;
      } catch (final Exception e) {
       return;
      }
     } 
    }
   } 
   Handler theHandle = new Handler() {
    @Override
    public void handleMessage(Message msg) {
     double ell =   m_sw.getFormatF();
     String strTime = String.format("%02d:%02d:%02d", (int)(ell / 60), (int)(ell% 60), (int)((ell *100) % 100));//이부분이 타이머 문자열입니다 
      m_tv_time.setText(strTime);
      if(m_sw2.getElapsedTimeMilli()>=3000) startThread2();
            super.handleMessage(msg); 
    }
   };
  };  

위에 표시한것처럼 if(x != m_iStep) 밑에서 버튼이 순서에 맞게 눌리지 않을때 발생하는 이벤트인데요.

이때 타이머에 패널티 3초를 주고싶습니다.

근데 타이머 문자열에서 어떻게 건드려야하는지 모르겠네요 ㅠㅠ

도움부탁드립니다.. 아는것도없이 이것저것 해보려니 힘드네요

히응이 (220 포인트) 님이 2015년 1월 6일 질문

2개의 답변

0 추천
타이머도 좋지만.. 아래와 같이 Handler의 postDelayed 함수를 이용해도 됩니다.

 

if(잘못눌렀을때)

{

패널티 생성();

 

new Handler().postDelayed(new Runnable(){

@Override

public void run()

{

    패널티 해제();

}

}, 3000);

}
neokii (1,280 포인트) 님이 2015년 1월 7일 답변
딜레이를 주게되면 3초가 빠르게가는게아니라 3초동안 멈추는거아닌가요?
그리고 생성 해제를 어떻게하죠 ㅠㅠ
0 추천
저도 윗분 처럼 핸들러를 이용하시는걸 추천해요.

핸들러에 보면 딜레이 주는게 있으니 그걸 이용하시면 될듯
기역시옷 (960 포인트) 님이 2015년 1월 7일 답변
...