暂停并恢复ScheduledExecutorService

时间:2015-01-03 00:28:01

标签: java executorservice scheduledexecutorservice

我正在写一个俄罗斯方块克隆。我想让这些碎片每60秒后更快一点,为此我正在使用ScheduledExecutorService

executor.scheduleAtFixedRate(new Runnable() {
    @Override
    public void run() {
        levelUp();
    }
}, 60, 60, TimeUnit.SECONDS);

现在,我可以暂停游戏,暂停游戏时,显然会停止做任何事情,直到我恢复它为止。就像现在一样,暂停游戏很好,一切都是为了所有事情,但这个执行者负责“升级”。例如,如果我玩了50秒,暂停游戏一分钟,恢复并再玩10秒,我将处于2级,而我应该处于1级(我们从0级开始)。有没有办法暂停恢复执行者?

请注意,暂停时只是没有升级是不够的:如果我玩50秒,然后暂停20秒然后恢复,我必须在我升级之前再玩50秒,而不是假设的10秒

那么,有没有办法暂停和恢复ScheduledExecutorService

1 个答案:

答案 0 :(得分:2)

查看thisthis个问题。默认情况下,不支持暂停和恢复ScheduledExecutorService,它只是可以停止。你必须完成任务的安排。

相关问题