0

我有一个关于android的串口或蓝牙的课程。该课程有一个名为CommandSender(String CommandText)的方法;

有许多窗体或线程可以调用该方法。我该怎么做:如果调用一次的方法立即执行该方法,如果多个窗体或线程调用该方法,则只需在调用之前/之后休眠 2 秒。

请提供代码详细信息。非常感谢你!

4

1 回答 1

0

你可以使用

public synchronized void CommandSender(String CommandText) { }

但这不会提供您需要的 2 秒睡眠。如果你真的需要 2 秒睡眠,那么你必须自己实现。

public class BluetoothUtils
{
    private static boolean isLocked = false;

    public void CommandSender(String CommandText)
    {
        while(isLocked)
        {
            Thread.sleep(2000); // sleep for 2 seconds
        }
        CommandSenderInternal(CommandText);
    }

    private synchronized void CommandSenderInternal(String CommandText)
    {
        isLocked = true;
        try
        {
            // Your implementation here
        }
        catch(Exception ex)
        {

        }
        finally
        {
             isLocked = false;
        }
    }
}
于 2012-12-14T03:59:30.930 回答