自上次应用程序启动以来,如何检测iphone是否已重新启动

Max*_*007 5 iphone cocoa-touch

我想从我的应用程序中检测到自上次我的应用程序启动以来iPhone是否已重新启动.我需要这样做,因为我的应用程序使用自上次系统重启后的计时器计时用户的时间,我想检测重启,以便我可以使时间无效.

有没有我可以从系统控制台日志中提取信息,如重启,崩溃?xcode中的组织者可以访问它,也许我也可以访问它.

如果没有,你能想到其他方法来获取这些信息吗?

Zor*_*mic 10

这似乎可行:

  • 得到自上次重启以来的时间,对于这个例子,让我们把它存储在一个名为'tslr'的变量中(我猜想持续时间以毫秒为单位,BTW,你怎么做到的?)
  • 获取当前时间,例如将其存储在变量'ct'中
  • 计算最后一次重启时间(我们称之为'lr'),我们有:lr = ct - tslr
  • 商店'lr'

下次启动应用程序时,加载"lr"的先前值,计算新值,如果它们不同,则检测到重新启动(您可能必须容忍一小段差别......也许几毫秒).

我认为愚弄这一点非常困难......用户必须非常精确地篡改他们的手机时间,并且他们必须在非常精确的时刻启动你的应用程序,正好在新的'lr'时与前一个相同......很难做到,我认为他们能够做到这一点的概率非常接近0.你不需要任何互联网连接来做到这一点......

在以下情况下,新的'lr'将与前一个相同:

  • 手机没有重启,时间没有改变
  • 时间被篡改,并且用户设法以精确的毫秒启动你的应用程序以欺骗你的算法(这种情况发生的可能性超过了超级)