您好,我正在尝试在用户按住按钮时执行一些操作。长时间执行操作
我的问题是,我的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
只运行一次。
我的测试日志只得到值1
日志呼吁Log.i("holdingDown", "false")
是越来越在正确的时间触发,只有当我停止触摸按钮。
为什么我的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'的值?此外,这不是开始和运行线程的方式 – gunar