没有得到didReceiveMemoryWarning当应用程序在后台

我注意到,当我的应用程序在iPad模拟器上处于后台状态时,我的视图控制器没有得到他们的didReceiveMemoryWarning方法。 更具体地说,我看到在我的日志中调用applicationDidEnterBackground ,然后我点击“模拟内存警告”button,然后我注意到任何didReceiveMemoryWarning调用特有的缺乏。

但是,当我把应用程序带回前台时,我突然收到了didReceiveMemoryWarning调用,就好像它已经排队了。

我在这里困惑的是,如果我的应用程序真的在后台,或者如果它是平坦的暂停。 有没有什么办法可以告诉模拟器?

另外,如果它还没有被暂停,而且真的只是在后台,那么我会觉得我无法处理didReceiveMemoryWarning是很愚蠢的。 因为这意味着只有前台应用程序可以处理内存警告来释放空间,这当然是奇怪的,因为前台应用程序可能只是可能运行的几十个应用程序中的一个,并且如果它们变得更有意义都可以释放内存。

无论如何,主要的问题是:为什么我不能在后台状态获取didReceiveMemoryWarning ? 而且,我真的被暂停了吗? 我怎么知道?

如果您未启动后台任务,或在后台执行VOIP,位置跟踪或audio,则应用程序在applicationDidEnterBackground后暂停。 它不会得到任何通知。 任何通知都会保留(即使应用程序被暂停后发生的通知),并在应用程序再次前往应用程序时发送给应用程序。

我不认为是这样。 我可以在后台访问didReceiveMemoryWarning代码。 一旦系统产生的低记忆信号比作为一个好公民,我们应该释放内存。 这也有助于我们的应用程序从系统终止。