雅虎天气应用程序做可撤销的-iOS

雅虎天气应用程序做可撤销的-iOS,ios,background-process,uilocalnotification,Ios,Background Process,Uilocalnotification,6个月前,我想将我的应用程序从后台唤醒30秒(已终止的应用程序),以下载几行XML并对其进行解析,但在尝试后台获取和静默推送以及在线阅读文章后,我得出结论,我试图实现的目标是不可能的 直到我发现,它允许用户设置一天中他/她想要获得明天天气通知的时间;通知是本地的,数据每天在后台下载。雅虎是如何做到这一点的?我看不到他们的代码,所以我不能确切地告诉你他们是如何做到的,但是我可以告诉你我是如何实现类似的东西的 您可以要求系统在有资源的情况下在后台启动应用程序。这称为后台应用程序刷新,您可以查找它 当

6个月前,我想将我的应用程序从后台唤醒30秒(已终止的应用程序),以下载几行XML并对其进行解析,但在尝试后台获取和静默推送以及在线阅读文章后,我得出结论,我试图实现的目标是不可能的


直到我发现,它允许用户设置一天中他/她想要获得明天天气通知的时间;通知是本地的,数据每天在后台下载。雅虎是如何做到这一点的?

我看不到他们的代码,所以我不能确切地告诉你他们是如何做到的,但是我可以告诉你我是如何实现类似的东西的

您可以要求系统在有资源的情况下在后台启动应用程序。这称为后台应用程序刷新,您可以查找它

当您的应用程序由于后台应用程序刷新而在后台启动时,您可以下载需要的数据,然后在每次发生这种情况时重新安排新的本地通知。这意味着当用户实际收到通知时,它将保存尽可能最新的数据


在天气应用程序方面。他们的应用程序每天在后台更新几次,能够获取当前的天气数据。他们每次都会安排通知,当您实际收到通知时,它会有最新的数据。

过了一段时间,我就明白了。应用程序也不使用后台获取或静默推送,因为如果用户终止应用程序,它们将不会运行。应用程序24小时跟踪用户位置,在位置更新后,localnotification将下载数据并安排时间

阅读更多:


终止和背景不是一回事。但是通过使用你提到的工具,你想要的是后台应用程序。。。后台获取和静默推送。您可能在实现过程中出错。是的,我知道这一点,我指的是终止的应用程序。如果用户使用进程切换程序(双击Home键并向上滑动)终止了您的应用程序,则您的应用程序进程将被终止,苹果将不会启动它以接收推送。这就是你的意思吗?是的,但雅虎仍然设法在后台启动应用程序。当应用程序在后台时,这一切都很好,但即使应用程序被终止,雅虎应用程序也可以工作。如果雅虎可以不顾苹果公布的规则这样做,那么雅虎与苹果有一份合同,这可能是你无法得到的。@Ty096你可以终止应用程序,关键是系统可以重启它一小段时间,比如收集一些数据。阅读关于后台应用程序刷新的文章。我读了关于后台刷新的文章(6个月前,今天又读了一篇),它涉及后台获取和静默推送。但当应用程序被用户终止时,后台提取和静默推送都不起作用。你们可以感觉到无声的推(振动),但应用程序不会处理它(当它终止时)。但雅虎仍然做到了这一点。根据苹果文档——“该应用程序需要定期从网络上获取新内容。在方便的情况下,系统会在后台启动或恢复该应用程序,并为其提供少量时间下载任何新内容。iOS 7.0及更高版本基本上支持该值。”,如果实现正确,它的功能与天气应用程序相同。