现在我需要获取用户打开应用程序的时间,并将该时间与上次时间进行比较,如果时间超过24小时,则只是为了提醒用户更新应用程序。谁知道这方面的Objective-C代码?请帮我.Thank U非常多!
发布于 2015-04-09 18:10:38
在您的AppDelegate文件中创建一个NSDate成员变量(即NSDate *startDate)。现在在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.
}
}发布于 2015-04-10 17:34:42
我建议将值存储在用户默认值中,这样即使用户退出应用程序,我们也可以获得数据时间详细信息。在应用委托- (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小时,那么你也可以执行任务。我希望这能帮到你。
发布于 2015-04-09 17:28:03
您可以使用NSDate:
NSDate* now = [NSDate date];将该值另存为lastTimeOpened,并在下次启动时进行比较:
if ([now timeIntervalSinceDate:lastTimeOpened] > someTime)https://stackoverflow.com/questions/29534525
复制相似问题