ios Как узнать время запуска приложения?
Теперь мне нужно, чтобы пользователь открыл время приложения и сравнил его с последним временем, если время превышает 24 часа, просто чтобы напомнить пользователю об обновлении приложения. Кто знает код Objective-C по этому поводу? Пожалуйста, помогите мне. Спасибо большое!
3 ответа
Создайте переменную-член NSDate (т.е. NSDate *startDate) в вашем файле AppDelegate. Теперь в классе AppDelegate.m используйте приведенный ниже код.
- (void)applicationDidEnterBackground:(UIApplication *)application {
// save the last app opening time, you can save in NSuserdefaults also
startDate = [NSDate date];
}
- (void)applicationDidBecomeActive:(UIApplication *)application {
NSDate *now = [NSDate date];
// Returns in seconds
NSTimeInterval timeInterval = [now timeIntervalSinceDate:startDate]
if(timeInterval > (24*3600)) {
// remind the user of updating App here.
}
}
Я предлагаю сохранить значения в пользовательских значениях по умолчанию, чтобы, если пользователь даже выйдет из приложения, мы могли получить данные о времени данных. Добавьте приведенный ниже код в приложение делегат - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
NSDate *dateTimenow=[NSDate date];
NSDateFormatter *dateFormatter=[[NSDateFormatter alloc]init];
[dateFormatter setDateFormat:@"dd-MM-yyyy hh:mm"];
NSString *strDateTimeNow=[NSString stringWithFormat:@"%@",[dateFormatter stringFromDate:dateTimenow]];
NSLog(@"now date time: %@",strDateTimeNow);
NSUserDefaults *userdefaults=[NSUserDefaults standardUserDefaults];
if ([userdefaults valueForKey:@"LastAppLaunchTime"]) {
NSString *strPreviousDateTime=[NSString stringWithFormat:@"%@",[userdefaults valueForKey:@"LastAppLaunchTime"]];
NSLog(@"previous date time: %@",strPreviousDateTime);
//Now you can compare current date time with previous date time
//perform task after comparing
}
[userdefaults setValue:strDateTimeNow forKey:@"LastAppLaunchTime"];// saving recent date time details for next time
Вы также можете сделать это, находясь в фоновом режиме и выходя на передний план, поэтому, если приложение приостановлено в фоновом режиме более чем на 24 часа, вы также можете выполнить свою задачу. Надеюсь, это поможет.
Вы можете использовать NSDate:
NSDate* now = [NSDate date];
Сохраните это значение как lastTimeOpened и сравните при следующем запуске:
if ([now timeIntervalSinceDate:lastTimeOpened] > someTime)