如果应用程序在后台或已终止并且它接收到 voip 推送,那么操作系统将启动它并运行它。
文档说:
“即使您的应用程序在后台运行,您的应用程序也有运行时间来处理推送。”
有谁知道这个运行时间有多长,如果应用程序可以找出剩余的时间?
如果一个应用程序在前台并移动到后台,那么如果它使用 beginBackgroundTask() 等,它可以获得 30 秒的执行时间。
我已经进行了实验,发现如果在应用程序已经在后台时将静默推送传递给应用程序,那么应用程序也可以在这种情况下使用 beginBackgroundTask() 并且它也有 30 秒的时间来执行并执行某些操作它接收推送(它可以使用 UIApplication.shared.backgroundTimeRemaining 来查看剩余的时间。)
但是,如果传递 Voip 推送而不是静默推送,则 beginBackgroundTask() 功能不起作用(当然,因此 UIApplication.shared.backgroundTimeRemaining 不能用于确定剩余执行时间),但是应用程序可以在后台运行并执行一些活动(这是上面引用的文档所说的它可以做的事情)。
所以重复这个问题 - Apple 是否记录了它在收到 Voip 推送时运行了多少时间?该应用程序可以找出剩余的时间吗?或者得到一些执行时间即将到期的警告?