收藏
回答

如何监听setInterval定时器的状态?

我想根据定时器的状态来进行按钮的调整,一个是开始按钮,一个是结束按钮。当定时器状态为打开的话,禁用开始按钮,当定时器关闭的话,禁用结束按钮。有没有大佬做过类似的,解惑一下,谢谢。


补充问题:

有两个按钮,一个是“开始”,一个是“结束”。当点击开始按钮,定时器开启,开始按钮变为禁用,结束按钮变为可用。当点击结束按钮,定时器关闭,开始按钮变为可用,结束按钮变为禁用。按钮状态是有保存的。

但是会出现这种情况,当用户从某一种方式打开小程序,点击开始按钮,打开定时器后,将小程序放入后台。然后,用户通过另一种方式(和之前不一样)打开小程序后,定时器还开着,但是开始按钮变成了可用状态,结束按钮变成了禁用状态。这时,打印定时器所带的id参数,也是undefined。

最后一次编辑于  2020-01-03
回答关注问题邀请回答
收藏

3 个回答

  • 铭锋科技
    铭锋科技
    2020-01-03

    谢邀,能来代码片段再描述下吗

    2020-01-03
    有用
    回复
  • 老张
    老张
    2020-01-02

    在时间点:this.setData({isShown:!this.data.isShown})

    setInterval合适吗?永久不断循环?

    setTimeout吧?


    2020-01-02
    有用
    回复 1
    • 小老布
      小老布
      2020-01-03
      谢答。您说的这个我设置了。我之前问题没描述清楚,我又补充了下。定时器会出现我上面所列的那种情况。
      2020-01-03
      回复
  • 罗梅光
    罗梅光
    2020-01-02

    可以反过来吗?

    点击“开始”按钮开启或重置定时器,点击“关闭”按钮关闭定时器。

    2020-01-02
    有用
    回复 3
    • 小老布
      小老布
      2020-01-02
      谢谢您的回答哈,设计是这么设计的。
      不过,举个例子:用户从微信聊天下拉的地方打开了一次小程序,并且按了开始,开启了定时器,开始按钮为禁用状态,结束按钮为可用状态,没有关,挂在后台了,然后,又通过其他的方式打开小程序,比如:扫描二维码,或者点击链接等,这时,定时器还开着,并没断,但是开始按钮变成了可用状态,结束按钮变成了禁用状态。也就是说,通过两次不同方式打开,定时器会开着,但是已经不能再结束了。
      我调试的时候,在这种状况下,再次通过其它方式打开的话,收不到之前定时器携带的id参数。
      所以就想问一下,是否有可以监听定时器状态的。
      2020-01-02
      回复
    • 罗梅光
      罗梅光
      2020-01-02回复小老布
      定时器的开关状态要保存啊。
      2020-01-02
      回复
    • 小老布
      小老布
      2020-01-03回复罗梅光
      状态保存了,只不过像我上面描述的那样,通过两种不同的方式进入小程序,定时器不会关,但是所携带的id参数已经undefined了
      2020-01-03
      回复
登录 后发表内容
问题标签