Ios 由于内存压力,可靠地强制后台应用程序终止
我试图了解导致iOS系统重新启动由于内存压力而终止的应用程序的条件。然而,创造足够的内存压力一直很困难 目前我的方法是通过Xcode启动我的应用程序,在后台运行它,然后启动一个消耗内存的助手应用程序。它在NSTimer循环中分配内存位,直到iOS系统将其杀死。幸运的是,Xcode告诉我,我的主应用程序“由于内存压力而终止”Ios 由于内存压力,可靠地强制后台应用程序终止,ios,ios7,memory-pressure,Ios,Ios7,Memory Pressure,我试图了解导致iOS系统重新启动由于内存压力而终止的应用程序的条件。然而,创造足够的内存压力一直很困难 目前我的方法是通过Xcode启动我的应用程序,在后台运行它,然后启动一个消耗内存的助手应用程序。它在NSTimer循环中分配内存位,直到iOS系统将其杀死。幸运的是,Xcode告诉我,我的主应用程序“由于内存压力而终止” 我正在寻找一种更可靠的方法来实现这一点。是否有内存分配技术或专用API更适合于此目的?我想您想要完成的是测试您是否正确保存了状态,以便在重新启动时导航回原来的位置 我建议设置
我正在寻找一种更可靠的方法来实现这一点。是否有内存分配技术或专用API更适合于此目的?我想您想要完成的是测试您是否正确保存了状态,以便在重新启动时导航回原来的位置
我建议设置一个标志,这样当你的应用程序检测到它被移动到后台时,(ApplicationIdentinterBackground:),它会要求更多的时间,所有的状态都会改变,然后要么坐在旋转循环中直到被杀死,要么执行“退出(0)”。您应该能够看到应用程序在Xcode中“死掉”,然后可以重新启动它。您描述的行为让我有点惊讶,但有一些想法:
NSURLSession
、推送通知等),您的调试会话仍将消失。因此,通过调试器运行它来观察“如果操作系统重新启动我的应用程序怎么办”的问题是没有意义的
就个人而言,在诊断被丢弃、重新启动等应用程序的行为时,我使用Xcode设备管理器,并在那里观察设备的控制台。您可以在控制台中观察应用程序的任何NSLog语句,也可以观察应用程序被丢弃、应用程序被重新启动(如果操作系统确实在做一些事情来重新启动它)等情况把你的应用程序给我妻子。。。保证崩溃。@Rob-帮助程序收到didReceiveMemoryWarning消息,iOS系统随后会立即终止帮助程序,但不会终止主程序。我正在5s上测试。在尝试了您的所有建议后,我的助手应用程序会消耗内存,直到收到内存警告,几秒钟后释放所有内存,然后再次启动,但下次会消耗10%以上的内存,直到应用程序崩溃。我认为问题在于5s内存太多,因为很容易让iPod touch抛弃其他应用程序,但在5s上,我需要启动一些游戏,然后运行helper应用程序。我希望苹果能让这一切变得简单。