当前位置: 首页 > 知识库问答 >
问题:

ScheduledThreadPoolExecutor仅“勾选”一次

东门城
2023-03-14

我在我的活动中使用了一个倒计时计时器来实现一些倒计时功能。我决定离开CountDownTimer,使用ScheduledThreadPoolExecutor,因为CountDownTimer不能在onTick()中自动取消。

出于某种原因,以下代码中的myRunnable只执行一次。我不知道为什么它没有执行多次。函数未被击中。

private ScheduledThreadPoolExecutor mCountdownTimer;
private Tick mTick;

class Tick implements Runnable {
    @Override
    public void run() {
        Log.e("tick", String.valueOf(mAccumulatedMilliseconds));
        mAccumulatedMilliseconds += 1000;
        populateTimeAccumulated();
        populateTimeRemaining();
        updatePercentages();

        if (mTotalMilliseconds <= mAccumulatedMilliseconds) {
            destroyCountdownTimer();
        }
    }
}

private void startCountdown() {
    if (mAccumulatedMilliseconds < mTotalMilliseconds) {
        mCounterIsRunning = true;

        if (mCountdownTimer == null) {
            mCountdownTimer = new ScheduledThreadPoolExecutor(1);
        }

        if (mTick == null) {
            mTick = new Tick();
        }

        mCountdownTimer.scheduleAtFixedRate(mTick, 1000, 1000, TimeUnit.MILLISECONDS);
    }
}

private void destroyCountdownTimer() {
    if (mCountdownTimer != null) {
        mCountdownTimer.shutdownNow();
        mCountdownTimer = null;
    }

    if (mTick != null) {
        mTick = null;
    }
}

共有1个答案

雍兴修
2023-03-14

留档说:

If any execution of the task encounters an exception, subsequent executions are suppressed.

在Tick runnable中添加try-get块。

 类似资料:
  • java.util.concurrent.ScheduledThreadPoolExecutor是ThreadPoolExecutor的子类,并且可以另外调度命令以在给定延迟之后运行,或者定期执行。 ScheduledThreadPoolExecutor方法 Sr.No. 方法和描述 1 protected 《V》 RunnableScheduledFuture《V》 decorateTask(C

  • 问题内容: 如何将 嵌入边框 应用于HTML元素,但仅在其一侧。到现在为止,我一直在使用图像(GIF / PNG)执行此操作,然后将其用作背景并拉伸它(repeat-x),并从块的顶部移开一点。最近,我发现了 轮廓 CSS属性,这是伟大的!但是似乎将整个块都圈了起来…是否可以仅使用此边框属性在一个边界上执行此操作?另外,如果没有,您是否有任何CSS技巧可以代替背景图片?(以便稍后可以使用CSS等来

  • 问题内容: 浏览器仅在提交表单时选中复选框输入值数据,这是浏览器的标准行为吗? 如果未提供任何值数据,默认值是否始终为“ on”? 假设以上内容正确,那么在所有浏览器中这种行为是否一致? 问题答案: 是的,标准行为是仅在选中复选框后才发送值。通常,这意味着您需要记住在服务器端期望使用的复选框的方式,因为并非所有数据都从表单返回。 默认值始终为“ on”,这在所有浏览器中都应保持一致。 W3C HT

  • 我在理解ScheduledExecutorService/ScheduledThreadPoolExecutor的具体工作方式时遇到一些问题。我想进行以下设置: 一个类,它设置ScheduledThreadPoolExecutor,在调度任务之前将RemoveOnCancelPolicy设置为true,并关闭ScheduledThreadPoolExecutor(因为我想在try-catch块中调

  • 本文向大家介绍Vue中Table组件Select的勾选和取消勾选事件详解,包括了Vue中Table组件Select的勾选和取消勾选事件详解的使用技巧和注意事项,需要的朋友参考一下 简述 之间设计的界面中使用的是复选框控件,但是经过对官网了一些了解,使我们更加倾向于使用一些官网已经封装好的事件,就比如Table组件的Select勾选和取消勾选的这样一个事件。 勾选 首先我们需要说一下这个需求,如下图

  • 问题描述 在同一级下面的节点,我想要拿到el-tree勾选的节点 判断如果节点满足条件会自动勾选其他的节点 你期待的结果是什么? 比如 勾选2-1,通过'-'左边判断,如果是2,就自动勾选2-0;如果是3,就自动勾选3-0,并且在有2-1的情况下,点击2-0不能被取消勾选,除非只有2-0自身了,点击才能取消勾选。这种判断只判断同一级的,不同级的不判断 勾选3 自动勾选3-0 我遇到的问题? 如果我