設備時區更改時,我的應用程序是否可以收到任何通知?我想在我的應用程序處於前臺時收到通知。 NSTimezone不適合我,因爲我必須不斷檢查時區。在iOS的時區更改中獲得通知
回答
UIApplicationDelegate
有一個名爲applicationSignificantTimeChange:
的方法,當時間有重大變化時被調用。
的文檔中列出的實施例是:
的顯著時間的變化的例子包括午夜的到來,通過載體中的時間更新,並且變化到日光節約時間
但我會假設時區更改算作一個重大的時間更改。
該文檔也說,如果時間變化發生在你的應用程序在後臺運行,你會得到它,當你去到前臺
如果您的應用程序目前已被暫停,該消息被排隊,直到你應用程序將返回到前臺,並在此時交付。
您還可以收聽UIApplicationSignificantTimeChangeNotification
以發佈信息,以在您的應用的其他任何位置獲取相同的信息。
我注意到當應用程序放在前臺並且不在應用程序處於後臺的持續時間時調用觀察者方法並且用戶更改時區或移動到不同的時區。這是預期的行爲?在Android上,這樣的廣播發送到應用程序,即使應用程序在後臺,但我知道他們是兩個不同的操作系統具有非常不同的設計。 – 2016-11-25 10:42:55
剛剛注意到這裏https://developer.apple.com/reference/uikit/uiapplicationdelegate/1622992-applications重要時間交換,它實際上是在前臺時交付的。我想現在我需要找到一種方法,如果我能在應用程序處於後臺時弄清楚它。也許使用後臺獲取來實現它。 – 2016-11-25 13:31:18
您觀察到的所有iOS通知都會排隊,直到應用程序進入前臺。如果您需要在應用程序處於後臺時專門處理某些內容,則可以執行後臺提取。您需要從Apple獲得「授權」才能進行實際的後臺處理。 – leanne 2017-03-18 15:46:21
只聽 NSSystemTimeZoneDidChangeNotification
。
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(timeZoneChanged) name: NSSystemTimeZoneDidChangeNotification object:nil];
並記住取消註冊,例如在dealloc方法中。
[[NSNotificationCenter defaultCenter] removeObserver:self name:NSSystemTimeZoneDidChangeNotification object:nil];
我注意到,當應用程序放在前臺並且不是應用程序在後臺並且用戶更改時區或移動到其他時區時,應用程序調用觀察者方法'timeZoneChanged here'。這是預期的行爲?在Android上,這樣的廣播發送到應用程序,即使應用程序在後臺,但我知道他們是兩個不同的操作系統具有非常不同的設計。 – 2016-11-25 10:42:33
一旦應用程序恢復,您會收到該通知。 – 2016-11-30 15:33:15
- 1. Android系統區域設置更改時如何獲得通知?
- 2. 當NSTableView.clickedRow更改時獲取通知?
- 3. Android - 每次更改通知時更改通知的變量
- 4. 在Eclipse TextEditor中更改光標位置時得到通知
- 5. 如何在寫入之前獲得更改文件的通知?
- 6. 如何在iOS連接或斷開連接時獲得通知?
- 7. IOS更新時會通知IOS。
- 8. 在AsyncTask中更改通知
- 9. 更改時通知WPF DataGrid
- 10. gpio值更改時通知
- 11. 當焦點在Silverlight 4中更改時獲取通知?
- 12. 如何在yii中更改複選框時獲取通知
- 13. iOS:鍵盤幀更改通知錯誤?
- 14. 強制更改語言通知iOS
- 15. CALayer的可視區域更改時的通知?
- 16. 獲取有關硬盤扇區原始數據更改的通知 - 文件更改通知
- 17. KnockoutJS,映射插件,在模型更改時得到通知?
- 18. 如何獲得通用時間在iOS
- 19. Swift iOS 8+中的通訊簿更改通知
- 20. 如何獲得關於更改的通知if_index
- 21. 如何獲得有關SharePoint組更改的通知。
- 22. 如何自動獲得有關IP地址更改的通知
- 23. 如何獲得有關任何證書更改的通知
- 24. 當選項卡聚焦MultiPageEditorPart中的更改時獲取通知
- 25. xtext的EMF模型以適當的值更改時如何獲得通知
- 26. 如何獲得全時區名稱ios
- 27. 註冊後在iOS MDM代理中獲得通知
- 28. 在contactslist更改時收到通知
- 29. 當文件沒有在cPanel上更新時獲得通知
- 30. 在PHP中更改時區
檢查這個https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSTimeZone_Class/Reference/Reference.html – 2013-05-03 07:07:48
檢查這個http://stackoverflow.com/questions/13741585/notify-app-when-ipad-date-time-settings-changed – 2013-05-03 07:10:21