在特定时间后调用方法

时间:2014-01-12 02:20:27

标签: java android android-bluetooth

我想在特定的时间后调用一些方法。这正是我想要实现的: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但我不知道如何实现这一点。只需按一下按钮即可调用整个过程。

如果缺少重要的东西,我可以立即提供必要的代码。

1 个答案:

答案 0 :(得分:0)

您应该可以使用Thread.sleep()命令在对sendMessage的调用之间等待。

编辑:但是,请记住,在Android UI线程(这是点击事件运行的线程)中调用Thread.sleep()并不是一个好主意。如果这样做,UI将在线程处于休眠状态时锁定。有关如何在不锁定UI线程的情况下实现此目的的更多信息,请参阅此问题:How to pause / sleep thread or process in Android?