我有一个关于android的串口或蓝牙的课程。该课程有一个名为CommandSender(String CommandText)的方法;
有许多窗体或线程可以调用该方法。我该怎么做:如果调用一次的方法立即执行该方法,如果多个窗体或线程调用该方法,则只需在调用之前/之后休眠 2 秒。
请提供代码详细信息。非常感谢你!
我有一个关于android的串口或蓝牙的课程。该课程有一个名为CommandSender(String CommandText)的方法;
有许多窗体或线程可以调用该方法。我该怎么做:如果调用一次的方法立即执行该方法,如果多个窗体或线程调用该方法,则只需在调用之前/之后休眠 2 秒。
请提供代码详细信息。非常感谢你!
你可以使用
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;
}
}
}