从Executors.newFixedThreadPool获取的关闭线程池

时间:2014-06-24 05:46:24

标签: java android

我使用Executors.newFixedThreadPool每两分钟启动一个线程,然后线程将数据发送到服务器。

一段时间后,将不会发送任何数据。在这种情况下,如何关闭池。 我可以从通过ThreadPool

运行的同一个线程启动池的关闭

代码是:

scheduledThreadPool = Executors.newScheduledThreadPool(5);

        Runnable runnable = new Runnable() {
            @SuppressLint("ShowToast")

            public void run() {

                Log.e("Thread Pool -1 is running", "ThreadPool-1");
                sendDataToServer();


            }

        };

        scheduledThreadPool.scheduleWithFixedDelay(runnable, INITIAL_DELAY,
                DELAY, TimeUnit.SECONDS);

        }

1 个答案:

答案 0 :(得分:0)

保留您的预定未来以供将来参考。

final ScheduledFuture<?> scheduledFuture = scheduledThreadPool.scheduleWithFixedDelay(runnable, INITIAL_DELAY,
            DELAY, TimeUnit.SECONDS);

要取消,请在Future上调用cancel(boolean)方法:

scheduledFuture.cancel(true);

您必须保留您将在池中创建的所有期货,以便稍后取消。