无论如何在iOS上运行后台任务?比如定期检查手机的某些系统状况并报告小部件?
另外,我发现如果关闭iPhone,那么当手机重启时,那些后台任务无法再执行。
答案 0 :(得分:1)
答案简短:不。 长的答案更加微妙,但无论如何你都不应该这样做。您可以安排应用程序进行后台刷新,但这不可靠(应用程序不会以固定间隔运行),如果用户在任务切换器中滑动应用程序,则应用程序将无法在后台运行。另一种hacky方式是让服务器发送静默推送以更可靠地唤醒应用程序。然而,这仍然不能保证成功;如果用户在任务切换器中滑动应用程序,您的应用程序将无法运行。
在任何一种情况下,您都无法从应用中触发小部件更新。小部件生命周期由操作系统管理。相反,实现widgetPerformUpdate(completionHandler:)
并在那里执行您的小部件更新。但是,如上所述,这不是定期操作。