使用“applicationSignificantTimeChange”

Posted

技术标签:

【中文标题】使用“applicationSignificantTimeChange”【英文标题】:Use of "applicationSignificantTimeChange" 【发布时间】:2015-04-23 13:12:21 【问题描述】:

也许我在这里问了一个愚蠢的问题。

我最近注意到一个 UIApplication 委托方法

- (void)applicationSignificantTimeChange:(UIApplication *)application 


我想知道它的实际用途是什么?我们需要处理这个吗。谁能解释一个ios应用程序中可能发生的场景,我们需要在这里做一些编码。

我的应用对系统时间非常敏感,这就是我问这个问题的原因。看到这个 API 后,我有一种感觉,我在这里缺少一些东西来处理。

我只是想知道...... :)

谢谢, 拉梅什·钱德兰 A

【问题讨论】:

我认为the docs 几乎涵盖了您的问题:重大时间变化的示例包括午夜的到来、运营商的时间更新以及夏令时的变化。委托可以实现该方法来调整应用中任何显示时间或对时间变化敏感的对象。 【参考方案1】:

根据 iOS 上的文档,调用此方法:

重大时间变化的示例包括午夜的到来, 运营商的时间更新,以及夏令时的更改 时间。委托可以实现这个方法来调整任何对象 显示时间或对时间变化敏感的应用程序。之前 调用此方法,应用程序还会发布一个 UIApplicationSignificantTimeChange 通知给感兴趣 对象有机会对变化做出反应。如果您的应用当前 暂停,此消息将排队,直到您的应用返回 前台,此时它被交付。如果多次更改时间 发生时,只会发送最近的一个。

应该使用的示例包括:

如果您的应用程序有重复的计划事件,例如现在已经过去的本地通知,并且您的应用程序应该重新安排下一个通知(例如每日提醒)。 如果您的应用程序显示需要正确的时间之前的数据,即使用户设置了错误的时间(例如显示您当前葡萄糖读数或类似的医疗应用程序)。例如,如果血糖监测仪将旧的血糖值显示为用户当前的血糖值,则用户可能会做出错误的决定并受到伤害。

您如何响应此事件取决于您的应用程序。例如,您可以从服务器读取 UTC 以查看手机的 UTC 在一定范围内是否正确,并采取适当的措施,例如警告用户,或更新实际 UTC 和手机 UTC 之间的内部偏移量。

希望对您有所帮助。

【讨论】:

【参考方案2】:

-applicationSignificantTimeChange: 大致相当于UIApplicationSignificantTimeChangeNotification 通知。

我有一个自定义日期选择器控件,可以突出显示今天的日期。订阅此通知允许它在午夜更改其突出显示,或者如果用户手动设置时间混乱。

【讨论】:

以上是关于使用“applicationSignificantTimeChange”的主要内容,如果未能解决你的问题,请参考以下文章

在使用加载数据流步骤的猪中,使用(使用 PigStorage)和不使用它有啥区别?

今目标使用教程 今目标任务使用篇

Qt静态编译时使用OpenSSL有三种方式(不使用,动态使用,静态使用,默认是动态使用)

MySQL db 在按日期排序时使用“使用位置;使用临时;使用文件排序”

使用“使用严格”作为“使用强”的备份

Kettle java脚本组件的使用说明(简单使用升级使用)