特定の関数を別のスレッドで実行する Android アプリを開発しています。さて、このスレッドが実行されているときに、別のスレッドを作成したくありません。したがって、基本的には、スレッドが実行されているかどうかをメインスレッドに確認させ、実行している場合はスレッドをバイパスさせたいと考えています。そうでない場合は、スレッドを作成してその関数を実行します。どうすればいいですか?
5841 次
3 に答える
2
そのような場合は、 a を使用することをお勧めしますFuture
。コードをFutureTask
. を使用すると、が完了したかFuture.isDone
どうかがわかります。Future
はいの場合は、値も返します。
良い点は、同じスレッドを使用して複数のコード ブロックを Future として実行できることです。
現在あなたがしている場合:
Runnable myRunnable;
Thread t = new Thread(myRunnable);
次に、次のことを行う必要があります。
Future<Void> future = new FutureTask<Void>(myRunnable);
ExecutorService ex= Executors.newFixedThreadPool(1);
ex.submit(future);
future.isDone
あなたの希望を与えます。使い続けられるex
于 2013-07-25T08:19:57.373 に答える