1

私はjavafxで作成されたアプリケーションを持っています。これは、ランナブルを毎日実行するようにスケジュールします。scheduledFuture = scheduledExecutorService.scheduleAtFixedRate(runnable, initialDelay, 24*60*60*1000, TimeUnit.Milliseconds)

を使用してこのタスクをキャンセルしてもscheduledFuture.cancel(true)、ユーザーがアプリケーションを閉じた後、アプリケーションはバックグラウンドで存続します。

このスケジューリングが、アプリケーションを存続させる唯一の方法であると確信しています。スケジュールしなければ、アプリケーションは問題なく終了します。

4

1 に答える 1

2

を呼び出すshutdown()scheduledExecutorService、プログラムを正常にシャットダウンできました。

scheduledExecutorService.shutdown();

javadocsによると、

以前に送信されたタスクが実行される正常なシャットダウンを開始します

呼び出しcancel(true)はタスクをキャンセルするだけで、エグゼキュータ サービスを有効なままにし、shutdown()エグゼキュータ サービスも強制終了して、プログラムを終了できるようにします。

于 2013-09-12T23:24:09.247 に答える