ios – 由于内存压力,可靠地强制后台应用程序终止

ios – 由于内存压力,可靠地强制后台应用程序终止,第1张

概述我试图了解导致iOS系统重新启动因内存压力而终止的应用程序的条件.尽管如此,创造足够的记忆压力仍然很难 目前我的方法是通过Xcode启动我的应用程序,后台它,并启动一个吃内存的帮助应用程序.它在NSTimer循环中分配内存位,直到iOS系统终止它为止.当我很幸运时,Xcode告诉我,我的主应用程序是“由于内存压力而终止”. 我正在寻找一种更可靠的方法来实现这一目标.是否有更好的内存分配技术或私有A 我试图了解导致iOS系统重新启动因内存压力而终止的应用程序的条件.尽管如此,创造足够的记忆压力仍然很难

目前我的方法是通过Xcode启动我的应用程序,后台它,并启动一个吃内存的帮助应用程序.它在NSTimer循环中分配内存位,直到iOS系统终止它为止.当我很幸运时,Xcode告诉我,我的主应用程序是“由于内存压力而终止”.

我正在寻找一种更可靠的方法来实现这一目标.是否有更好的内存分配技术或私有API用于此目的?

解决方法 我对你所描述的行为感到有些惊讶,但有些想法:

>据我所知,iOS不保证应用程序被丢弃的顺序,也不保证所有后台应用程序都会被抛弃(或者它是否只是试图抛弃足够的应用来缓解内存压力状况). Handling low memory conditions in iOS and Mavericks提供了一些线索,但我无法保证.但 *** 作系统正在使用一些复杂的逻辑,所以我会毫不犹豫地对必须采取的步骤做出任何坚定的声明,以确保特定的应用程序被抛弃.
>这个背景应用程序被抛弃的顺序问题会受到您允许帮助应用程序崩溃这一事实的影响.后台应用程序可能不会被足够快地抛弃以满足您的帮助应用程序的分配尝试.因此,在iOS开始抛弃您的主应用程序之前,帮助应用程序可能会崩溃.

我可能会建议辅助应用程序的设计略有不同,这样当它收到内存警告时,它会释放它请求的所有内存并再次启动进程.在我的“因为内存压力”应用程序中,我实际上在收到内存警告和重新启动分配的过程之间等待几秒钟停止分配.

但是,最重要的是,我认为您可能希望确保帮助应用程序不会崩溃,以确保您充分运用内存压力系统.
>您描述等待Xcode中的调试器报告应用程序已终止.我可能会建议重复您的实验,直接在设备上运行主应用程序,但不能通过调试器.我建议这是因为理论上可能会让我觉得你的应用程序附加到调试器的事实可能会影响优先级计算,以确定哪些应用程序将被抛弃.

由于应用程序将被杀死,无论如何都无法通过调试器运行它,因为如果 *** 作系统执行某些 *** 作来重新启动应用程序(例如后台NSURLSession,推送通知等),您的调试会话无论如何都会消失.因此,通过调试器运行它是没有意义的,以便观察“如果 *** 作系统重启我的应用程序会怎么样”的问题.

就个人而言,在诊断被抛弃,重新启动等应用程序的行为时,我使用Xcode设备管理器,并在那里观察设备的控制台.您可以在控制台中观察任何应用程序的NSLog语句,以及观看被抛弃的应用程序,重新启动应用程序(如果 *** 作系统确实在重新启动它),等等.

总结

以上是内存溢出为你收集整理的ios – 由于内存压力,可靠地强制后台应用程序终止全部内容,希望文章能够帮你解决ios – 由于内存压力,可靠地强制后台应用程序终止所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1065804.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存