1

私のアプリケーションでは、電話の電源が長時間切られていない場合、didReceiveMemoryWarning がはるかに速く呼び出されることに気付きました。私のアプリケーションがアクセスできるメモリのプールは、時間の経過とともに縮小しているように見えます。

他の誰かがこれに気づきましたか、それについての説明はありますか? これが起こらないようにするために私が取ることができる一連の行動はありますか?

写真を撮ったり操作したりするのにかなりの量のメモリを使用すると、これが発生することに気付きます。電話の電源を切って再起動すると、問題が解決します。私のアプリケーションがアクセスできるメモリが縮小している可能性はありますか、それとも既存のメモリが断片化されており、再起動すると既存のメモリが最適化される可能性はありますか?

この問題に関する説明やヘルプは素晴らしいでしょう。ありがとう。

4

3 に答える 3

1

はい、残念ながら、これはよく知られている動作です。OS が実行されると cruft が発生し、問題を解決するために最終的に再起動が必要になります。これが、アプリストアの多くのアプリがゲームをプレイする前に再起動を要求する理由です。

于 2010-01-25T16:46:48.327 に答える
1

古いバージョンの iPod デーモンである mediaserverd がリークしていました。

その結果、あなたが説明した動作が発生しました。

1 つのシステム サービスが漏洩する可能性がある場合、他のサービスも漏洩する可能性があります。

于 2010-01-25T16:47:28.180 に答える
0

アプリがマルチタスクに対応できないからといって、iPhoneがマルチタスクを実行しているわけではありません。

Safariで開いているWebページは、OSがSafariに同じメモリ警告を送信するまでメモリに残ります。アプリの実行中にメールが機能し始め、より多くのメモリが必要になる場合があります。iPodアプリは、それ自体のためにかなりのメモリを保持しています。

アプリがメモリ不足の警告を受け取っているときにオーガナイザーを使用してiPhoneのコンソールを見ると、組み込みのアプリの一部がメモリの警告を受け取り、メモリを解放するために終了していることがわかります。とてもおもしろいです。

于 2010-01-25T21:23:56.703 に答える