2017-01-01 102 views
1

我有一個計時器應用程序,應該運行幾個小時,並在特定的時間間隔播放聲音。如何在屏幕關閉(以節省電池)或ibooks等其他應用程序處於打開狀態時進行此項工作?目前,我在ViewDidLoad中運行我的計時器功能。也許這就是問題所在。這裏的正確方法是什麼?計時器應用程序工作時,屏幕關閉ios

+0

安排本地通知可能 – luk2302

回答

2

使用UNNotificationRequest安排用戶通知請求。根據需要提供UNCalendarNotificationTriggerUNTimeIntervalNotificationTrigger對象作爲觸發器。

如果您需要iOS 9及以下版本的支持,則有一個類似的UILocalNotification API在iOS 10中不推薦使用,但可用於需要向後兼容的情況。

請注意,一旦通知觸發,它只在客戶端,而您的應用程序不會被喚醒以執行任務。只有當用戶選擇激活通知時,您的應用程序纔會獲得正在運行的上下文。

+0

感謝您的回答。問題是當應用程序在後臺運行或手機進入睡眠模式時計時器凍結。我的應用程序要求它沒有。我查看了一些運動計時器和正在運行的應用程序,並且當其他應用程序同時運行時它們不會凍結。 –

+0

應用程序在後臺進入睡眠狀態。但是,您可以節省進入休眠的時間,然後通過計算從現在到應用程序進入休眠狀態的時間,重新啓動計時器。你可以使用'NSDate',或者如果你需要更高的精度,你可以使用mach time。 –

+0

您是否研究過音頻背景模式功能? – Gruntcakes