0

必要なたびにfindViewByIdよりもレイアウト要素への参照を保存する方が「安価」ですが、ガベージコレクションを防ぐことはできませんか? 私の仮定では、onStop 状態ではビューが破棄され、少なくとも onSaveInstanceState が呼び出されます。つまり、アクティビティまたはフラグメントで UI 要素を参照すると、要素が収集されなくなります。

私は間違っていますか、それとも findViewById に固執するか、 weakreferences を試す必要がありますか?

ありがとう。

4

2 に答える 2

1

ビュー参照が複数回アクセスされる場合は、ビュー参照をアクティビティに保存することをお勧めします。

どこでもfindViewByIdを呼び出すと、コードが醜くなると思います。

ビュー参照がgcに影響を与えるとは思わない.Activityを使用してすべてのUI要素にアクセスできるため、それらの参照はすでに保持されている.

于 2012-12-14T08:52:29.817 に答える
0

答えは : 状況によりますが、

UI を繰り返し参照する場合は、参照を保存する方が安価です。そうでない場合は、findViewById を数回使用できます。通常の状態のほとんどのアプリでは、これらのタスクはシステムにあまり負荷をかけないため、どちらの方法でもパフォーマンスに大きな違いはありません。したがって、私の最終的な答えは、パフォーマンスの向上/低下はほとんど無視できるため、ワークフローで最も快適なことは何でも実行してください (これを何度も実行しない限り)。

于 2012-12-14T08:10:49.370 に答える