【发布时间】:2010-11-29 20:39:27
【问题描述】:
我使用此代码来跟踪上次重启:
+ (float) secondsSinceLastReboot{
return ((float)(mach_absolute_time())) * ((float)timebase.numer) / ((float)timebase.denom) / 1000000000.0f;
}
我假设 mach_absolute_time() 是基于上次设备启动时间,就像在 mac 上一样。好像不是基于这个。我其实不知道它是基于什么的。
查看以下行为(今天的日期是2009-09-20):
lastRebootTime = [[NSDate date] addTimeInterval:-[self secondsSinceLastReboot]];
//last Reboot Time will contain : 2009-09-20 07:42:14 +0100
我绝对确定当时我没有重新启动我的设备。我的设备已经一周没有启动了。
此外,当我从电缆上拔下设备并运行此应用程序时,似乎当设备进入睡眠状态时,lastRebootTime 将在未来开始变化。 mach_absolute_time 似乎没有考虑睡眠时间。还是我错了?
我真的很希望能够获得设备上次重启时的时间戳。有什么想法吗?
【问题讨论】:
-
你可以#include "CAHostTimeBase.h" from CoreAudio Utility Classes 见developer.apple.com/library/ios/qa/qa1643/_index.html