空のプロジェクトを作成し、次のコードを実行しようとしました。残念ながら、問題が発生しました: スレッドが終了しないのにメイン アクティビティが読み込まれません。スレッドからの戻り値を使用しない場合、すべて正常に動作します。残念ながら最終的な ExecutorService サービスです。最終的な将来のタスク。
service = Executors.newFixedThreadPool(1);
task = service.submit(new Foo());
try
{
final String str;
// waits the 10 seconds for the Callable.call to finish.
str = task.get();
Log.d("VSK",str);
}
catch(final InterruptedException ex)
{
ex.printStackTrace();
}
catch(final ExecutionException ex)
{
ex.printStackTrace();
}
service.shutdownNow();
}
class Foo
implements Callable<String>
{
public String call()
{
try
{
// sleep for 10 seconds
Thread.sleep(10 * 1000);
}
catch(final InterruptedException ex)
{
ex.printStackTrace();
}
return ("Hello, World!");
}
}