iPhone杀死后台应用程序

有没有办法杀死后台应用程序?

我有一个我正在处理的应用程序,它记录了一个声音,然后在滚动视图上绘制出来我遇到的问题是,如果录制时间过长会崩溃因为内存耗尽而无法绘制它。 我对此的修复是监视可用内存量并预测将占用的内存使用量,并在没有足够的内存之前停止录制。 问题是我在后台运行的应用程序越多,它就越早停止录制而不是杀死后台应用程序,以便像ios在didRecieveMemoryWarning之前那样创建空间。 重述我的问题如何杀死这些后台应用程序? 苹果会对此不以为然吗?

您想从您的前台应用程序以编程方式杀死其他后台应用程序? 我怀疑苹果会对此不以为然。

从理论上讲,你可以从sysctl获取他们的进程id并发送一个SIGKILL来终止它们,但iOS 不会让你获得有关其他进程的信息,除非你是root(这意味着越狱)。

iOS会在开始向您发送内存警告的同时开始终止未使用的后台应用程序。 但是你根本不应该得到内存警告,而是尝试修复你的内存管理。

杀死后台应用程序无法解决您的问题。 即使所有其他应用程序都被杀死,您的应用程序仍会在一段时间后崩溃。

考虑使用一个小缓冲区来存储这些数据并定期将它们写入存储。 当用户需要向后滚动并读取旧记录时,请从存储中读回。 通过限制窗口大小,应用程序将只使用一定量的内存。