gpt4 book ai didi

Android 按键不放连续循环的方法

转载 作者:行者123 更新时间:2023-11-29 15:55:22 25 4
gpt4 key购买 nike

我有一个按钮,我设置了一个 ontouchlistener 来连续执行一个方法,但是当我按住按钮时,它会在调用 1 次方法后停止执行。

我的方法基本上是从 2 到 4 连续循环。

下面是我的代码 fragment 。

broadcastButton = (Button) findViewById(R.id.broadcastButton);
broadcastButton.setText("Loop");
broadcastButton.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
broadcastmode = 1;
schedulePeriodicMethod();
try {
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
break;
case MotionEvent.ACTION_UP:
broadcastmode = 0;
stopPeriodicMethod();


}
return true;
}
});

public void schedulePeriodicMethod() {
exHandler.postDelayed(execution, 100);
}

public void stopPeriodicMethod() {
exHandler.removeCallbacks(execution);
}

private Runnable execution = new Runnable() {
@Override
public void run() {
connectDevice(flag);
serialSend("C");
flag++;
if (flag > 4)
flag = 2;
}
};

需要帮助我哪里做错了程序没有循环

最佳答案

这里是连续循环一个方法的简单方法

//create a handler, override handle message of Handler
private Handler myHandler = new Handler(){
@Override
public void handleMessage(Message msg) {

// do yo stuffs here like UI update etc.

//create a new message since a message will be consumed once as it //delivered by handler after the delay
Message message = new Message();
message.what = msg.what;
// send the new message with handler
myHandler.sendMessageDelayed(message, 150);
// 150 is time in milliseconds after which handler will give callback
}
};

//让我们在触摸 View 时调用处理程序,将 ontouch 监听器设置为//你想要的 View //在触摸 View 时,创建一条新消息并将其传递给//处理程序

 @Override
public boolean onTouch(View v, MotionEvent event) {
switch(event.getAction()){
case MotionEvent.ACTION_DOWN:
Message message = new Message();
myHandler.sendMessage(message);
break;

// on action up of on touch of the view, remove the messages and call backs
//case MotionEvent.ACTION_UP:
myHandler.removeCallbacksAndMessages(null);
break;
}
return false;
}

关于Android 按键不放连续循环的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28340093/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com