ダイアログを呼び出すdismiss()
と、非表示にするだけでなく、メモリからも削除されますか? ImageViews
、など、ダイアログ内に配置されたすべてのオブジェクトをButtons
メモリから削除しますか?
これらのオブジェクトのメモリを自分で解放し、ガベージ コレクターがその仕事をするのを待たない方法はありますか?
ダイアログを呼び出すdismiss()
と、非表示にするだけでなく、メモリからも削除されますか? ImageViews
、など、ダイアログ内に配置されたすべてのオブジェクトをButtons
メモリから削除しますか?
これらのオブジェクトのメモリを自分で解放し、ガベージ コレクターがその仕事をするのを待たない方法はありますか?
Java では、メモリはガベージ コレクタによってのみ解放され、ガベージ コレクタがメモリを収集して解放できるように、すべてのオブジェクトを null にすることしかできません。
なぜこれが必要なのですか?Java の全体的なポイントは、Java がメモリ管理を処理することです。明らかなメモリの問題か何かがありますか?
Google Android Developer Documentation は次のように述べています。
public void disconnect () : 以降: API レベル 1 このダイアログを閉じて、画面から削除します。このメソッドは、どのスレッドからでも安全に呼び出すことができます。ダイアログが閉じられたときにクリーンアップを行うためにこのメソッドをオーバーライドしないでください。代わりに onStop() で実装してください。
手動でfree
記憶するのは
Java では実行できません。でメモリを割り当てることができますnew
が、ガベージ コレクタがメモリを解放します。
背後で作業しようとしているガベージ コレクターがいる場合は、悪い考えです。
dismiss()
ダイアログを非表示にするだけです。それへのすべての参照を削除するために呼び出しremoveDialog(int)
、GC が作動するのを待ちます。