• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

ios - iOS 应用程序可以保证在后台停留多长时间而不会从内存中删除?

[复制链接]
菜鸟教程小白 发表于 2022-12-11 19:59:02 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我有一个由 3 个 View Controller 组成的 Swift iOS 应用程序——第一个带有 tableview,第二个带有所选元素并能够创建新的时间 session ,第三个带有 session 的实际计时器(让我们称它为计时器 vc)。

在这种情况下,焦点是计时器 View Controller 。但是,问题不在于计时器本身。它适用于前台和后台模式。问题是这样的:

应用程序进入后台。然后在某个固定的时间段内,它会收到一个本地通知——提醒返回计时器 vc 并保存结果。大多数情况下,它工作正常,但有时当您返回应用程序(通过通知)时,它会使用 tableview 而不是计时器 vc 打开初始 vc,这似乎系统会在一段时间后终止后台应用程序然后当您返回通知时重新打开它。在这种情况下,来自定时器 vc 的所有数据显然都丢失了,因为应用程序逻辑要求用户在 session 结束后保存数据。

我认为,问题的本质可能与应用程序可以在后台停留多长时间而不会被终止或暂停有关(如果我没记错的话,在这种状态下,与应用程序从内存中删除)。我的意思是,当您将通知设置为每 1、5 或 10 分钟触发一次时,一切似乎都很好。但是,当通知设置为 30 分钟或更长时间时,上述错误似乎会不时出现(尤其是在实际设备而不是模拟器上进行测试时)。大多数情况下,如果设备存储空间几乎已满 - 可用空间不足 1Gb),就会出现这种情况。这让我相信这也可能是一个内存管理问题。

如何让这个计时器 vc 在后台运行所需的时间?另外,有人知道iOS应用程序可以保证在后台停留多长时间而不会从内存中删除吗?非常感谢。



Best Answer-推荐答案


无法保证您的应用程序在后台模式下的执行时间。操作系统可以随时暂停它,操作系统只负责通知您的应用程序,您将在应用委托(delegate)。

要设置本地通知,您只需要从操作系统获得帮助。您不能依赖应用程序在后台线程中的执行。对于本地通知的调度和处理,您可以查看以下文档。

https://developer.apple.com/library/content/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/SchedulingandHandlingLocalNotifications.html#//apple_ref/doc/uid/TP40008194-CH5-SW1

关于ios - iOS 应用程序可以保证在后台停留多长时间而不会从内存中删除?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49650079/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap