簡體   English   中英

如何知道在應用程序處於后台時是否觸發了本地通知?

[英]How to know if a local notification was fired while the app is in background?

我啟用了后台模式以進行位置更新。 我創建了一個計划的本地通知,我希望能夠在觸發時停止位置服務並且應用程序在后台運行。

看來didReceiveLocalNotification方法只在應用程序處於前台時調用,或者它在后台並且用戶點擊它,是否有任何方法可以注意到它在應用程序處於后台時被觸發,但是用戶沒有點擊它?

我希望這可能有所幫助

當系統發送本地通知時,可能會發生一些事情,具體取決於應用程序狀態和通知類型。 如果應用程序不在最前面並且可見,則系統會顯示警報消息,對應用程序進行標記,並播放聲音 - 通知中指定的任何內容。 如果通知是警報並且用戶點擊操作按鈕(或者,如果設備被鎖定,則拖動打開操作滑塊),應用程序被喚醒或啟動。 (如果用戶點擊您使用additionalActions屬性指定的其中一個自定義操作,則應用程序將被喚醒或啟動到后台。)在其應用程序:didFinishLaunchingWithOptions:方法中,應用程序委托可以從啟動選項字典中獲取UILocalNotification對象使用UIApplicationLaunchOptionsLocalNotificationKey鍵。 委托可以檢查通知的屬性,如果通知在其userInfo字典中包含自定義數據,則它可以訪問該數據並相應地處理它。 另一方面,如果本地通知僅標記應用程序圖標,並且響應中的用戶啟動應用程序,則調用應用程序:didFinishLaunchingWithOptions:方法,但選項字典中不包含UILocalNotification對象。 當用戶選擇自定義操作時,將調用app delegate的應用程序:handleActionWithIdentifier:forLocalNotification:completionHandler:方法來處理操作。

這來自Apple文檔。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM