Ich verwende diesen Code, um den letzten Neustart zu verfolgen:
+ (float) secondsSinceLastReboot{
return ((float)(mach_absolute_time())) * ((float)timebase.numer) / ((float)timebase.denom) / 1000000000.0f;
}
Ich nahm an, dass mach_absolute_time() auf der letzten Bootzeit des Geräts basiert, wie es bei einem Mac der Fall ist. Es scheint nicht darauf zu basieren. Ich habe eigentlich keine Ahnung, worauf es basiert.
Sehen Sie sich das folgende Verhalten an (das heutige Datum ist 2009-09-20 ):
lastRebootTime = [[NSDate date] addTimeInterval:-[self secondsSinceLastReboot]];
//last Reboot Time will contain : 2009-09-20 07:42:14 +0100
Ich bin mir absolut sicher, dass ich mein Gerät zu diesem Zeitpunkt nicht neu gestartet habe. Mein Gerät wurde seit einer Woche nicht mehr gebootet.
Wenn ich mein Gerät vom Kabel trenne und diese App ausführe, scheint es außerdem, dass sich die lastRebootTime in die Zukunft verschiebt, wenn das Gerät in den Ruhezustand geht. Es scheint mach_absolute_time
die Schlafzeit nicht berücksichtigt. Oder liege ich da falsch?
Ich würde gerne einen Zeitstempel für den letzten Neustart des Geräts erhalten. Irgendeine Idee?