在我正在制作的应用中,用户每2小时只能执行一项任务。即使应用程序已关闭且未运行,如何跟踪2小时?
请在Swift中给出答案。这是我到目前为止的代码
@IBAction weak var button(sender: AnyObject) {
if timer >= 2 hrs {
println("OK")
}
else {
println("Please wait 2 hrs before continuing")
}
}
答案 0 :(得分:3)
创建NSDate对象并将其保存为用户默认值。当应用程序重新启动时,获取对象并比较时差。如果已经过了2个小时,请让用户执行操作。如果还有一段时间,请根据2个时间戳之间的差异启动新的计时器。
答案 1 :(得分:0)
不幸的是,根据您的行为,您可能无法做到这一点。 Apple对背景“模式”有非常具体的要求。默认情况下,我相信您的应用程序已经背景化,您有10分钟的时间来完成正在运行的任务。如果您无法这样做,则必须注册适当的背景模式。
如果您永远不会将应用程序提交到应用程序商店,我可以为您提供一种“欺骗”应用程序以在后台继续运行的方法。
如果您正在使用某种通知网络服务,您可以将其设置为以这种方式工作,但如上所列,您正在查看否。
答案 2 :(得分:0)
不可能在后台随意做。不幸的是,Apple并不允许你在后台运行NSTimers
。
关于Apple的这个article,对于需要更多执行时间来实现的任务,您必须请求特定权限才能在后台运行它们而不会被暂停。在iOS中,只允许特定的应用类型在后台运行:
在后台录制音频内容的应用
随时向用户通知其位置信息的应用,例如导航应用。
您可以在上面的文章中阅读更多内容。我希望这能帮到你。