안드로이드 개발 질문/답변
(글 수 45,052)
제가 현제 버튼에 OnTouchListener를 이용해서 터치시에 기울기 값에 따른 제어를 하고 있습니다.
ACTION_MOVE와 ACTION_UP일때는 정상적으로 작동을 하는데 ACTION_DOWN의 경우
버튼 터치시 터치하는 순간 한번만 동작하고, 계속 누르고 있어도 지속시간이 10~11초 정도 밖에 유지가 안되네요.
10~11초 이휴에는 ACTION_UP으로 종료가 되네요.
ACTION_MOVE를 사용한 결과 누르고 있는 동안은 계속 동작을하고, 이동하지 않을시에는 10~11초간 유지. 누르고 이동할시에는 계속 동작을 하더라구요.
그래서 이동하지 않고, 누르고 있는 상태에서 계속 시간을 유지가능한 방법을 알고 싶습니다.
그리고 sleep 같은 경우 아래의 소스처럼 사용하는 것이 맞나요? 1초 간격으로 작동을 하는데, 1초 내에 다른 if동작시
sendToque(-165, -165); 이부분이 1초에 한번 동작하는것이 아닌 동작 실행후 2번 전송후 다른 if동작으로 넘어가네요.
질문이 조금 이상하긴 하지만 좋은 답변 부탁 드립니다.
소스 부분입니다.
((Button)findViewById(R.id.button11)).setOnTouchListener(new Button.OnTouchListener() {
public boolean onTouch(View arg0, MotionEvent arg1) {
switch(arg1.getAction()) {
case MotionEvent.ACTION_MOVE:
if(a < -10) {
sendToque(-165, -165);
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if(a > 20) {
sendToque(1, 1);
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
((Button)findViewById(R.id.button11)).setBackgroundResource(R.drawable.icon);
break;
case MotionEvent.ACTION_UP:
sendToque(10, 10);
((Button)findViewById(R.id.button11)).setBackgroundResource(R.drawable.buttonbackground);
//break;
}
return true;
}
});




제가 테스트 해봤는데(HTC 디자이어).. ACTION_DOWN 상태에서 손을 떼지 않는이상 ACTION_UP 이벤트가 들어오지 않네요..
질문자님 소스를 그대로 긁어서 센드토크 부분만 빼고 테스트를 해봤거든요...