0

现在我需要获取用户打开APP的时间,并与上次比较,如果时间超过24小时,只是为了提醒用户更新APP。谁知道这方面的 Objective-C 代码?请帮助我。非常感谢你!

4

3 回答 3

4

在您的 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-09T10:10:37.730 回答
3

我建议将值存储在用户默认值中,这样即使用户退出应用程序,我们也可以获得数据时间详细信息。在应用委托中添加以下代码- (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-10T09:34:42.293 回答
0

您可以使用 NSDate:

NSDate* now = [NSDate date];

将此值保存为 lastTimeOpened 并在下次启动时进行比较:

if ([now timeIntervalSinceDate:lastTimeOpened] > someTime)
于 2015-04-09T09:28:03.373 回答