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
有趣的是,当您开始向上滑动关闭通知中心时,viewWillDisappear
和 viewDidDisappear
都会一个接一个地调用(按此顺序)。
这意味着虽然通知中心和您的小部件在屏幕上仍然可见(如果您将手指放在拖动手柄上)viewDidDisappear
已被调用。
【讨论】:
在相关说明中,打开通知中心时,相关方法的调用顺序是viewDidLoad
、widgetPerformUpdateWithCompletionHandler
、viewWillAppear
,每次通知中心时都会调用这三个方法。处于完全打开状态以上是关于Dose NSTimer 可以在 Today Extension (Widget) 中使用吗?的主要内容,如果未能解决你的问题,请参考以下文章
Eclipse 基于不同CT图像的 Plan Dose 叠加