を終えた私たちは、2つのアクティビティを持っているサンプルコード https://github.com/PVoLan/TestActivityDisposeMonodroid - 空きメモリ活動はここ
見つけることができます。 1つはボタンが2番目のアクティビティにつながっています。 2番目のアクティビティには30個のTextView(複雑なUIをシミュレート)と戻るボタンがあります。
前後のアクティビティを切り替えると、GREFの量がすぐに増えます。オーバーフロー2kの限界とクラッシュアプリケーションには、前方と後方をクリックするのに約60回かかる。
Androidログはリポジトリにあります。ログから見ることができるように、GREFオーバーフローはTextViews(1543 GREF)が原因で最も発生します。別のGREFSは以下のとおりです。
- ボタン(55 GREFs) - 戻るボタン、明らか
- OnClickListenerImplementor(55 GREFs) - backButton.Clickのlistenters
- Activity2(54 GREFs)
- テント(54 GREFs) - 活動スターター
我々が見ることができるように、活動のリソースが解放されていないとき、活動終了(OnDestroyが呼ばれている) どのように私はこのすべてGREFsが適切に解放することができますか?
これはテストサンプルで動作しますが、実際のプロジェクトでは予期しない例外が発生します。[ここに記載されています](http://stackoverflow.com/questions/7599737/monodroid-gc-collect-fails-without-any-reason) 。モノドイドでGCのいくつかの問題について聞いたことがあります。この質問が投稿されたとき、私はmonodroidの1.0.2バージョンを使用しました。今は最新のベータ版を使用していますが、問題はまだ実際です。 – PVoLan
@PVoLan:デバイスを再起動して、それが役立つかどうか確認してください。 – jonp
エミュレータを再起動して、クリアHTCを使用しようとしました。無効。私はまた、テストサンプルで例外を表現しようとしていますが、まだそれをキャッチすることはできません。私が成功するなら、あなたに通知します – PVoLan