设备时区更改时,我的应用程序是否可以收到任何通知?我想在我的应用程序处于前台时收到通知。 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. 在Eclipse TextEditor中更改光标位置时得到通知
- 3. Android - 每次更改通知时更改通知的变量
- 4. 如何在写入之前获得更改文件的通知?
- 5. 更改时通知WPF DataGrid
- 6. gpio值更改时通知
- 7. 如何在yii中更改复选框时获取通知
- 8. 当焦点在Silverlight 4中更改时获取通知?
- 9. CALayer的可视区域更改时的通知?
- 10. Swift iOS 8+中的通讯簿更改通知
- 11. 如何自动获得有关IP地址更改的通知
- 12. 如何获得有关SharePoint组更改的通知。
- 13. 当选项卡聚焦MultiPageEditorPart中的更改时获取通知
- 14. 如何获得全时区名称ios
- 15. 在contactslist更改时收到通知
- 16. 在drupal中更改时区
- 17. 在MSYS中更改时区
- 18. 在PHP中更改时区
- 19. 如何在iOS中接收到新短信时得到通知
- 20. (iOS)通过locationManager的多个通知:didExitRegion:退出区域时
- 21. 通知用户在更改选项卡时保存更改
- 22. 如何更改Xcode中iOS推送通知的颜色?
- 23. iOS上的实时通知
- 24. Couchdb获取每个更改通知的更改文档
- 25. 为所有更改获取MediaWiki通知
- 26. GSEventRegisterEventCallBack - 获取视图更改通知
- 27. iOS推送通知和远程通知的区别?
- 28. 更改时区
- 29. 更改时区
- 30. Geofencing在进入某个区域时没有通知(iOS)
检查这个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