2014-09-21 82 views
4

我想在今日擴展中使用NSTimer來刷新小部件,但我不知道劑量這種行爲是否合法?劑量NSTimer可用於今日擴展(小工具)?

我做了一個演示,使用NSTimer每1秒計算並刷新小部件用戶界面,看起來像是工作,但問題是當用戶退出通知中心時,定時器仍在運行,何時何地應該停止定時器?

+0

仍然不知道這是行爲合法性,但我發現蘋果不會將標誌NS_EXTENSION_UNAVAILABLE添加到NSTimer,所以我認爲我們可以在Today Extension中使用NSTimer。然後我認爲這是在viewWillAppear中啓動計時器的好方法:並且在viewWillDisappear中停止計時器,它對我來說非常合適。 – vcLwei 2014-09-21 14:05:49

回答

6

我也可以確認這種方法對我很好。

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

有趣的是,viewWillDisappearviewDidDisappear都只要你開始向上滑動即可關閉通知中心召集了一個又一個(按順序)。 這意味着雖然通知中心和您的小部件仍然可以在屏幕上看到(如果您的手指保持在拖動手柄上)viewDidDisappear已被調用。

+2

在相關說明中,打開通知中心時,相關方法的調用順序爲viewDidLoad,widgetPerformUpdateWithCompletionHandler,viewWillAppear,每當通知中心處於完全打開狀態時調用全部3個 – 2014-10-28 11:36:19