エミュレータでxcode計測器とプロファイルを実行すると、ビューが削除された後すぐにUiViewControllers Disposeメソッドが呼び出されます。しかし、私がデバイス上でアプリケーションを実行すると、すべてのUiViewControllerのdisposeメソッドが呼び出されることはありません!または非常にゆっくりと呼ばれ、記憶が高すぎる。Xamarin Iosのガベージコレクタデバイスでは機能しません
なぜこのようなことが起こっているのかわかりません。問題は、AppDelagate ReceiveMemoryWarningとDidEnterBackground()でGc.Collect()を手動で実行するときに、デバイスでアプリを取得してdiposeメソッドを呼び出す唯一の方法だということです。これらのメソッドのいずれかが実行されると、メモリは140MB以上から70MBに減少します。
これは、アプリケーションがエミュレータで実行されているときのメモリのイメージです。 Emulator Memory Allocation
いつデバイスでアプリを実行しますか? Device Memory Allocations
エミュレータからわかるように、disposeメソッドはUIviewcontrollerが削除されるたびに呼び出されます。しかし、このデバイスでは、disposeメソッドは決して呼び出されません。デバイスのイメージに表示されるドロップは、アプリケーションがbeckgroundに移動し、GC.Collect()を手動で呼び出すときです。
iosデバイスでエミュレータと同じように自動実行しないのはなぜですか?
私は非常に新しいxamarinです、私はこれを理解するために4日間過ごしました。私は本当に何をすべきか分からない。
誰かが私を助けてくれることを願っています。
あなたに感謝します。 –