この実験のために、まったく新しいサンプル プロジェクトを開始しました。アプリには 1 つのアクティビティがあります。
この時点で、アプリケーションを実行して Java ヒープをダンプします。結果を以下に示します。
すごい!すべてが正しく見えます。「Total Count」と「Heap Count」は 1 です。まさに期待どおりです。
デバイスを 3 回回転させてみましょう。この時点ではまだ MainActivity が 1 つしか表示されないことを期待していますが、4 つが作成されていることは理解しています。見てみましょう。
うーん...それは奇妙です。それは 4 を示しています。活動はまだ続いているのかもしれません。参照されていません...しかし、まだGCされていません。GC を強制して、別のヒープ ダンプを実行しましょう。
変。まだ 4 です。ここで迷っています。Total Count または Heap Count のいずれかが 1 であるように聞こえます。MainActivity のすべての参照を保持しているだけですか? それは漏れですか?視聴者が間違っているだけですか?
合計数 (ドキュメントによると) は「未処理のインスタンスの合計数」です。
多分ヒープカウント?「選択したヒープ内のインスタンス数」それは私が望むものの多くのように聞こえます。gc ルートを持つインスタンス (実インスタンス) の数が必要です。
なぜこれが起こっているのか誰にも分かりますか?