У меня есть требование для моего приложения, чтобы через определенный период (25 минут) оно выходило из системы). Как теперь рассчитать время, в течение которого приложение оставалось в фоновом режиме?
Я пытаюсь использовать метод - applicationDidBecomeActive
, и для этого указан код по умолчанию с использованием метки времени и получения разницы между метками времени. проблема в том, что эта разница кажется странной, и я не могу ее понять.
Проще говоря, я хочу получить разницу, но я не могу преобразовать в желаемые минуты / секунды. Я хотел бы сопоставить, равна ли эта разница 25 минутам или нет (или даже секундам). Любой простой фрагмент кода?
1 ответ
Вы устанавливаете NSDate
, где вы вводите фон:
- (void)applicationDidEnterBackground:(UIApplication *)application {
self.backgroundedDate = [NSDate date];
}
Затем, когда вы вернетесь на передний план, проверьте разницу во времени:
- (void)applicationWillEnterForeground:(UIApplication *)application {
if (self.backgroundedDate) {
BOOL isTimedout =[self.backgroundedDate timeIntervalSinceNow] <= -(25 * 60);
if (isTimedout) {
[self.rootViewController presentLogin];
}
}
}
timeIntervalSince1970
возвращает NSTimeInterval
в секундах, так что вы хотите, чтобы минуты только что нырнули на 60.
NSTimeInterval
, который является double
в NSInteger
, и вы потеряете миллисекунды. Это действительно базовые вещи.
Похожие вопросы
Новые вопросы
ios
iOS - мобильная операционная система, работающая на Apple iPhone, iPod touch и iPad. Используйте этот тег [ios] для вопросов, связанных с программированием на платформе iOS. Используйте связанные теги [target-c] и [swift] для проблем, характерных для этих языков программирования.