如何解决如果应用程序在后台停留超过 30 秒而不是在进入后台时显示屏幕,则应用程序从主屏幕启动
我的 iOS 应用程序是一种消息应用程序,因此用户可以发送音频、视频、图像等。当用户输入消息并且应用程序进入后台超过 30 秒然后应用程序从主屏幕启动,所有这些消息,一切会迷路。在 30 秒之前,应用程序在它进入后台的确切位置启动。那么如何在 30 秒后做同样的事情,至少我应该保持这个状态 30 分钟。
在 iOS 13+ 中使用后台进程和计划任务会是一个好方法吗?
我特别不想在后台做任何事情,但是当应用在 30 分钟内从后台转到前台时,我想保持该状态。
解决方法
消息消失
嗯,首先,为什么所有的消息都丢失了?如果您尝试制作类似 Snapchat 的体验,其中消息在您看到后消失,那很好,但否则可能值得使用 CoreData
为这些消息添加本地存储。
原因
主要问题是,过一会儿 iOS 将只是一个应用 sleep
可以这么说,在这种情况下,它会删除您应用中的所有临时数据,这意味着当您重新打开它时,它会启动从一开始,它就是为了节省内存。
解决方案
有几种方法可以解决这个问题,您可以使用State Restoration
对于初学者来说,这可能非常棘手,因为关于它的文档非常稀少。
另一种选择是将最后一个屏幕保存在 UserDefaults
中,然后当应用重新启动时,您可以使用该值推送用户所在的最后一个屏幕。对于这两种解决方案,尽管您需要一种方法来保留消息并重新获取它们(数据库)CoreData
可能是您最好的选择
我个人认为状态恢复是最好的选择,尤其是因为听起来这正是您想要做的:
但是当应用程序在 30 分钟内从后台转到前台时,我想保持该状态。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。