目标c:如何在应用程序处于后台时执行一个功能/基于时间间隔自动终止/

时间:2015-12-04 08:00:05

标签: ios objective-c iphone uilocalnotification localnotification

我需要在app处于后台时执行一个功能,或者甚至在被用户杀死时执行,自动根据时间间隔

要求: 用户注册后(Ex注册日期2015年1月1日),我需要根据以下时间间隔将功能状态更改为启用/禁用,并在应用处于活动模式或后台时通知用户或者它被杀死。 / p>

注册日期2015年1月1日: 查看照片功能状态更改如下。 状态启用后,模式用户可以通过点击表格中的照片行来查看照片。 当状态处于“禁用模式”时,用户无法通过点击表格中的照片行来查看照片并生成警报。

前2周:禁用 2周 - 第5周:启用 第5周 - 第12周:禁用 第12周 - 3个月:启用 3个月 - 8个月:禁用 8个月 - 12个月:启用 1年 - 1。5年:禁用 1。5年 - 2年启用 2年后 - 状态在每3个月之间切换一次。

我完成了日期计算。

但我只想知道如何在应用程序处于后台时执行某项功能,或者甚至在被用户杀死时如何执行,自动根据时间间隔

提前谢谢

2 个答案:

答案 0 :(得分:1)

我认为你选择的方式是错误的。只需使用AppDelegate方法了解应用程序何时启动或应用程序何时恢复到前台状态。

UIApplicationDelegate Apple Reference

答案 1 :(得分:0)

你可以在后台调用功能,但app kill然后功能不起作用。尝试使用此代码进行后台工作。

- (void)applicationDidEnterBackground:(UIApplication *)application {

[NSTimer scheduledTimerWithTimeInterval:300.0f
                                 target:self
                               selector:@selector(updateMethod:)
                               userInfo:nil
                                repeats:YES];

}

- (void)updateMethod:(NSTimer *)theTimer {
// Your code goes here
NSLog(@"Backgroud Mode");
}