我想在特定的时间后调用一些方法。这正是我想要实现的:onClick
按钮调用该方法然后应用程序等待200ms并再次调用相同的方法。我正在谈论的方法在我的情况下看起来像这样:
private void sendMessage(String message) {
if (mCommandService.getState() != CommandService.STATE_CONNECTED) {
Toast.makeText(this, R.string.title_not_connected, Toast.LENGTH_SHORT).show();
return;
}
if (message.length() > 0) {
byte[] send = message.getBytes();
mCommandService.write(send);
mOutStringBuffer.setLength(0);
mOutEditText.setText(mOutStringBuffer);
}
}
此方法用于收集字符串并放入OutputStream
以便稍后通过蓝牙发送。我需要每秒发送5次这个字符串,所以我到目前为止所做的是:
rootView.findViewById(R.id.action_send).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String message = result;
sendMessage(message);
sendMessage(message);
sendMessage(message);
sendMessage(message);
sendMessage(message);
}
});
但在这里,我只是一个接一个地发送它们。所以它应该是:sendMessage
- >等待(200ms) - > sendMessage
- >等待(200ms) - > sendMessage
- >等待(200ms) - > sendMessage
- >等待(200ms) - > sendMessage
但我不知道如何实现这一点。只需按一下按钮即可调用整个过程。
如果缺少重要的东西,我可以立即提供必要的代码。
答案 0 :(得分:0)
您应该可以使用Thread.sleep()命令在对sendMessage的调用之间等待。
编辑:但是,请记住,在Android UI线程(这是点击事件运行的线程)中调用Thread.sleep()并不是一个好主意。如果这样做,UI将在线程处于休眠状态时锁定。有关如何在不锁定UI线程的情况下实现此目的的更多信息,请参阅此问题:How to pause / sleep thread or process in Android?。