안녕하세요, 사용자가 버튼을 누르고있는 동안 일부 작업을 수행하려고합니다.길게 누르는 동안 작업 수행
제 문제는 제 Runnable
이 "실행"되지 않는 것입니다.
@Override
public boolean onLongClick(View v) {
final Runnable r = new Runnable()
{
public void run()
{//do the forwarding logic here
int test = 0;
if(holdingDown)
test++;
else
return;
Log.i("test", test+"");
}
};
r.run();
}
return false;
}
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction() & MotionEvent.ACTION_MASK) {
case MotionEvent.ACTION_UP:
{
holdingDown= false;
Log.i("holdingDown", "false");
break;
}
}
return false;
}
onTouch
은 사용자가 버튼을 누를 때 중지 검출이다
여기에 내 코드이다. 내 기록을 볼 때 Runnable
은 한 번만 실행됩니다.
내 테스트 로그 내가 버튼을 터치 중지하는 경우에만 Log.i("holdingDown", "false")
에 대한 로그 호출, 적절한 시간에 트리거하기 1.
에만 값을 얻는다.
내 Runnable
이 실행되지 않는 이유는 무엇입니까? 감사.
편집 :
나는이 코드를 시도 : 작동하지 않을 때까지@Override
public boolean onLongClick(View v) {
// TODO Auto-generated method stub
holdingDown = true;
new Thread(new Runnable() {
@Override
public void run() {
if(holdingDown)
{
int test = 0;
test++;
Log.i("test", test+"");
}
else
return;
}
}).start();
return false;
}
그것.
여기서 'holdDown'의 값을 true로 변경 하시겠습니까? 또한 스레드를 시작하고 실행하는 방법이 아닙니다. – gunar