0
thread = new Thread()
        {
            @Override
            public void run() {
                while(!requestedToExit)
                {
                    SystemClock.sleep(3000);
                    Log.d("debug", "in");
                }
            }
        };

そのため、ボタンにイベントが発生しました。ボタンをクリックするたびに、スレッドが開始されます(前のスレッドが生きていない場合)。

そこで、thread.start()を使用してみましたが、すでに開始されているスレッドがスローされます。.run()を試しましたが、何も起こりません。ボタンをクリックするたびに試しました。もう一度実行し、新しいスレッドを作成して開始することができます:何もありません。

いくつかのアイデア?


Runnableの使用:

   r= new Runnable(){

            public void run() {
                while(!requestedToExit)
                {
                    Log.d("debug", "in");
                    SystemClock.sleep(3000);

                }
            }
        };

次に、リスナーで使用します:

thread = new Thread(injection);
thread.start();

しかし、私は最初にデバッグを見るだけで、彼はその後デバッグに入ることがありません。

前もって感謝します

4

1 に答える 1

5

JavaDocから-

スレッドを複数回開始することは決して合法ではありません。特に、実行が完了したスレッドは再起動されない場合があります。

代わりに、必要java.lang.Runnableなときに実行する新しいスレッドを使用して作成します。

あなたがする必要があるのは:

Runnable r = new Runnable() {
    public void run() {
        ....
    }
};

次に、それを開始したいとき:

Thread t = new Thread(r);
t.start();

その1つの実行可能ファイルを実行するには、常に新しいスレッドを作成する必要があります。

于 2012-04-26T11:21:55.743 に答える