0

我尝试在 iOS Simulator 上模拟内存警告,结果发现当应用程序在后台时,该函数当时没有被调用,但在应用程序再次激活后,正在调用applicationDidReceiveMemoryWarning 。

当使用Instrument:Activity Monitor进行测试时,我的应用程序在后台没有释放任何内存,而其他应用程序的内存消耗越来越少。

但是,如果我通过applicationDidEnterBackground调用applicationDidReceiveMemoryWarning,内存会正确释放,但我不想在这个阶段释放内存。

- (void)applicationDidEnterBackground:(UIApplication *)application
{
    [glView applicationDidEnterBackground:application];

    // Function works if it's called from here, but not what I want.
    [self applicationDidReceiveMemoryWarning:application];
}

- (void)applicationDidReceiveMemoryWarning:(UIApplication *)application
{
    [glView applicationDidReceiveMemoryWarning:application];
}

我该如何解决?

4

1 回答 1

0

不幸的是,Apple 在iOS App Programming Guide中不鼓励您这样做。应用程序会短暂进入后台,让您释放内存。之后,应用程序被挂起,无法接收消息,除了 applicationWillTerminate。如果触发内存不足警告,操作系统会根据需要终止暂停的应用程序。

于 2011-10-21T13:21:58.667 回答