您可以覆盖applicationWillTerminate
应用程序中的方法,并将当前用户进度保存到 UserDefaults。
正如文档所说,你有几秒钟的时间来做这件事:
此方法让您的应用程序知道它即将被终止并完全从内存中清除。您应该使用此方法为您的应用程序执行任何最终清理任务,例如释放共享资源、保存用户数据和使计时器无效。您对此方法的实现大约有五秒钟的时间来执行任何任务并返回。
您的代码可能如下所示:
var player: AVPlayer!
func applicationWillTerminate(_ application: UIApplication) {
UserDefaults.standard.setValue(player.currentTime().seconds, forKey: "curPlayerTime")
}
然后,在应用程序启动时,您可以恢复它:
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
if let lastPlayerTime = UserDefaults.standard.value(forKey: "curPlayerTime") as? Double {
// update your player
}
return true
}