Ich lese den Beispielcode von Google, der Code ist wie folgt:
%Vor%}
Sie können sehen, dass jeder ViewHolder einen Verweis (ItemClickListener) auf den Adapter enthält, da der Adapter bereits auf den ViewHolder verweist. Weiß jemand, ob diese Art von Implementierung Speicherverlust verursachen würde? Bitte korrigieren Sie mich, wenn mein Verständnis falsch ist.
Glaube nicht, dass es so wäre. Der ViewHolder kann ohne den Adapter nicht existieren und wird vor dem Adapter aufwendig gesammelt, da die ViewHolder ständig vom Adapter recycelt werden, wenn die RecyclerView gescrollt wird. Das verwendete Schnittstellenmuster ist nur eine übliche Möglichkeit, dem Adapter mitzuteilen, dass auf einen bestimmten ViewHolder geklickt wurde. Ich nehme an, Sie könnten Speicher verlieren, wenn Sie das Gegenteil tun, indem Sie einen Verweis auf einen bestimmten ViewHolder in einer Mitgliedsvariablen innerhalb des Adapters halten, da dies verhindern könnte, dass der ViewHolder GC wird. Trotzdem scheint der obige Code ziemlich Standard zu sein.
Tags und Links android android-fragments android-viewholder