Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 在后台模式下运行函数的替代方法_Swift_Push Notification_Nstimer - Fatal编程技术网

Swift 在后台模式下运行函数的替代方法

Swift 在后台模式下运行函数的替代方法,swift,push-notification,nstimer,Swift,Push Notification,Nstimer,我正在创建一个应用程序,它将每20分钟向您发送一次本地通知。我遇到的问题是,一旦应用程序进入后台模式,触发函数运行的计时器将执行一些代码,然后向用户发送一个通知,该通知将不会运行。有没有其他方法可以做到这一点?此计时器在循环中运行,每20分钟重置一次,并运行一个函数 谢谢当然可以。查看UILocalNotification的文档。您可以将fireDate设置为您希望发出通知的精确秒数。它还具有可用于指定重复间隔的参数 您不能强制用户激活应用程序以运行您的功能。一旦用户点击通知,您的应用程序激活,

我正在创建一个应用程序,它将每20分钟向您发送一次本地通知。我遇到的问题是,一旦应用程序进入后台模式,触发函数运行的计时器将执行一些代码,然后向用户发送一个通知,该通知将不会运行。有没有其他方法可以做到这一点?此计时器在循环中运行,每20分钟重置一次,并运行一个函数


谢谢

当然可以。查看
UILocalNotification
的文档。您可以将
fireDate
设置为您希望发出通知的精确秒数。它还具有可用于指定重复间隔的参数


您不能强制用户激活应用程序以运行您的功能。一旦用户点击通知,您的应用程序激活,您就可以执行所有需要的逻辑(可能还包括处理过去的“错过”通知)。

谢谢,但我已经这样做了,这不是问题所在。问题是我需要在函数执行某些代码时运行该函数,以检查某些内容是否正确,从而能够发送另一个推送通知。问题是我可以;t在后台模式下运行功能…您无法强制用户激活应用程序以运行您的功能。一旦用户点击通知,你的应用程序激活,你就可以执行你需要的所有逻辑(可能还包括处理过去的“错过”通知)。同样,这不是解决方案,因为我需要在后台模式下运行此功能。不允许用户打开应用程序然后运行功能,因为这不是答案。发出的通知是对某些事情的提醒,并且每20分钟发出一次,除非函数中的某些代码是否定的。因此,我正在寻找一种替代方法,来研究如何在后台运行这个函数,或者实现相同的最终结果。如上所述,这是不可能的。您可以运行的唯一后台活动是下载。您需要修改您的体系结构,并找到一种方法来确定正确的行为,而无需运行您的功能。好的,谢谢您的帮助。如前所述,我已经要求了一个替代方案,我已经意识到这是不可能的。你在这个函数中做什么,你想定期在后台运行?有少数,专门的情况下,后台操作是允许的。但是,一般来说,你不能按你的要求去做(因为大量的应用程序会开始这样做,这会耗尽我们的电池)。但是如果我们知道你想做什么,我们也许可以提供建议。顺便说一下,iOS应用程序编程指南的一章清楚地概述了所有这些不同的场景。谢谢rob。我试图每20分钟触发一次本地通知,尽管在这些通知之间我必须运行一个函数来检查是否需要它们。如果有帮助的话?遗憾的是,没有,这仍然太模糊了。后台执行标准非常具体和狭窄(例如VOIP、导航、音乐等)。而其他类型的后台操作(例如,定期从网络获取数据)则受到进一步的限制(例如,您无法决定调用的频率;操作系统会为您决定)。同样,如果没有更详细的说明,我们也无能为力。该函数正在对照用户设置的时间窗口检查当前时间,如果当前时间在该窗口内,我希望它继续发送通知。