Dose NSTimer 可以在 Today Extension (Widget) 中使用吗?

Posted

技术标签:

【中文标题】Dose NSTimer 可以在 Today Extension (Widget) 中使用吗?【英文标题】:Dose NSTimer can be used in Today Extension (Widget)? 【发布时间】:2014-09-21 13:31:29 【问题描述】:

我想在 Today Extension 中使用 NSTimer 来刷新小部件,但我不知道这种行为是否合法?

我正在做一个演示,使用 NSTimer 来计数并每 1 秒刷新一次小部件 UI,似乎可以工作,但问题是当用户退出通知中心时,计时器仍在运行,我应该何时何地停止计时器?

【问题讨论】:

仍然不知道这种行为是否合法,但我发现Apple没有将标志NS_EXTENSION_UNAVAILABLE添加到NSTimer,所以我认为我们可以在Today Extension中使用NSTimer。然后我认为这是在 viewWillAppear: 中启动计时器并在 viewWillDisappear: 中停止计时器的好方法,它对我来说非常有效。 【参考方案1】:

我也可以确认这种方法对我很有效。

override func viewDidDisappear(animated:Bool) 
    // stop the timer here when notification center is closed

有趣的是,当您开始向上滑动关闭通知中心时,viewWillDisappearviewDidDisappear 都会一个接一个地调用(按此顺序)。 这意味着虽然通知中心和您的小部件在屏幕上仍然可见(如果您将手指放在拖动手柄上)viewDidDisappear 已被调用。

【讨论】:

在相关说明中,打开通知中心时,相关方法的调用顺序是viewDidLoadwidgetPerformUpdateWithCompletionHandlerviewWillAppear,每次通知中心时都会调用这三个方法。处于完全打开状态

以上是关于Dose NSTimer 可以在 Today Extension (Widget) 中使用吗?的主要内容,如果未能解决你的问题,请参考以下文章

用excel怎样计算年龄?

如何查看分配给值的原始代码,例如[x

Eclipse 基于不同CT图像的 Plan Dose 叠加

NSTimer 可以采用多个选择器吗?

npm dose not support Node.js v10.15.3

在 Plotly 中制作带有百分比的条形图