0

iOS シミュレーターでメモリ警告をシミュレートしようとしましたが、アプリがバックグラウンドにあるときはその時点で関数が呼び出されませんでしたが、アプリが再びアクティブになった後、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

残念ながら、あなたがやりたいことは、iOS App Programming Guideで Apple によって推奨されていません。アプリが一時的にバックグラウンドに入り、メモリを解放できます。その後、アプリは中断され、applicationWillTerminate を除いてメッセージを受信できなくなります。メモリ不足の警告が発生した場合、オペレーティング システムは必要に応じて中断されたアプリを強制終了します。

于 2011-10-21T13:21:58.667 に答える