4

ダイアログを呼び出すdismiss()と、非表示にするだけでなく、メモリからも削除されますか? ImageViews、など、ダイアログ内に配置されたすべてのオブジェクトをButtonsメモリから削除しますか?

これらのオブジェクトのメモリを自分で解放し、ガベージ コレクターがその仕事をするのを待たない方法はありますか?

4

4 に答える 4

4

いいえ、dismiss()それはそれを隠しているだけだと思います。

ここに参照があります

removeDialog(int)状態をクリアします。

于 2012-07-18T13:33:23.020 に答える
1

Java では、メモリはガベージ コレクタによってのみ解放され、ガベージ コレクタがメモリを収集して解放できるように、すべてのオブジェクトを null にすることしかできません。

なぜこれが必要なのですか?Java の全体的なポイントは、Java がメモリ管理を処理することです。明らかなメモリの問題か何かがありますか?

于 2012-07-18T13:33:06.193 に答える
1

Google Android Developer Documentation は次のように述べています。

public void disconnect () : 以降: API レベル 1 このダイアログを閉じて、画面から削除します。このメソッドは、どのスレッドからでも安全に呼び出すことができます。ダイアログが閉じられたときにクリーンアップを行うためにこのメソッドをオーバーライドしないでください。代わりに onStop() で実装してください。

于 2012-07-18T13:33:39.017 に答える
1

手動でfree記憶するのは

  1. Java では実行できません。でメモリを割り当てることができますnewが、ガベージ コレクタがメモリを解放します。

  2. 背後で作業しようとしているガベージ コレクターがいる場合は、悪い考えです。

dismiss()ダイアログを非表示にするだけです。それへのすべての参照を削除するために呼び出しremoveDialog(int)、GC が作動するのを待ちます。

于 2012-07-18T13:35:38.563 に答える