使用计时器在后台刷新应用程序

Posted

技术标签:

【中文标题】使用计时器在后台刷新应用程序【英文标题】:Using a timer to refresh the app in the background 【发布时间】:2018-01-10 17:35:42 【问题描述】:

我正在考虑向我的应用程序添加一个计时器,以便我可以使用它定期在后台刷新数据,而不是通过 APNs 与服务器发送静默通知。

如果我这样做,Apple 会拒绝我的应用吗?

【问题讨论】:

【参考方案1】:

在后台运行 8 秒后,应用程序将进入暂停状态,它会停止执行任何代码。另外,不保证应用不会被系统杀死。

它根本行不通。

对于使用带有静默通知的 APN 的定期更新,如果您发送的 APN 太多,Apple 很可能会禁止您发送。

在后台/挂起/死机时定期更新应用的方式是使用Background fetch 后台模式。

请注意:您无法决定执行后台提取的时间或频率。 ios 将根据每个用户的应用使用情况来决定。

Here 指向后台模式教程的链接,包括后台获取。

Here应用生命周期和状态。

【讨论】:

这行不通。应用程序将在 8 秒后转换到非活动状态。在非活动状态下,应用不会执行代码。 你知道多少APNs静默通知太多了吗?我正在考虑每分钟刷新一次应用程序.. 不,我没有。每个用户每分钟一次肯定太难了。我会说也许一天一次。 每分钟持续更新一个应用程序是太多了,而且肯定会让你的应用程序被拒绝。为什么要经常更新?

以上是关于使用计时器在后台刷新应用程序的主要内容,如果未能解决你的问题,请参考以下文章

ios后台任务定时器

当应用程序处于后台并且网络连接丢失时,位置更新计时器不起作用?

ReactiveUI:如何实现定期刷新的ReactiveList

使用 sqldataadapter.fill 刷新数据 - 看不到新数据

如何在后台运行计时器

在 Swift 中使用 @observable,我想使用计时器定期刷新 ObservedObject。我该怎么做呢?