0

AndroidによるシリアルポートまたはBluetoothに関するクラスがあります。クラスには 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 に答える