目标c:当应用程序在后台/基于时间间隔自动终止时如何执行功能
Posted
技术标签:
【中文标题】目标c:当应用程序在后台/基于时间间隔自动终止时如何执行功能【英文标题】:Objective c: how to execute a function when app is in the background/killed automatically based on time Intervals 【发布时间】:2015-12-04 08:00:05 【问题描述】:当应用程序在后台甚至被用户杀死时,我需要根据时间间隔自动执行一个函数
要求: 用户注册后(前注册日期 2015 年 1 月 1 日),我需要根据以下时间间隔将功能的状态更改为启用/禁用,并在应用程序处于活动模式或后台或被杀死时通知用户。
注册日期 2015 年 1 月 1 日: 查看照片功能状态更改如下。 当状态启用时,用户可以通过点击表格中的照片行来查看照片。 当状态处于禁用模式时,用户无法查看照片并通过点击表格中的照片行来生成警报。
前 2 周:禁用 第 2 周 - 第 5 周:启用 第 5 周 - 第 12 周:禁用 第 12 周 - 3 个月:启用 3个月-8个月:禁用 8months-12months:启用 1 年 - 1.5 年:禁用 1.5 年 - 2 年启用 2 年后 - 每 3 个月切换一次状态。
我完成了日期计算。
但我只想知道当应用程序在后台时,甚至当被用户杀死时,如何根据时间间隔自动执行一个函数
提前致谢
【问题讨论】:
所以你不知道如何解决这个问题? 问问自己:没有运行的应用程序如何执行功能?当你解决了这个禅宗之谜后,你就可以进行下一步了。 【参考方案1】:我认为你选择的方式是错误的。只需使用AppDelegate
方法即可知道应用何时启动或应用何时返回前台状态。
UIApplicationDelegate Apple Reference
【讨论】:
【参考方案2】:您可以在后台调用函数,但应用程序杀死然后函数不起作用。尝试使用此代码进行后台工作。
- (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");
【讨论】:
以上是关于目标c:当应用程序在后台/基于时间间隔自动终止时如何执行功能的主要内容,如果未能解决你的问题,请参考以下文章