2

私はこれに困惑しています。メモリ リークを回避するために、Android で新しいリスナーを適切に作成する方法がわかりません。外部クラスへの SoftReference を持つ静的内部クラスを使用しますか (外部クラス変数にアクセスする必要があるため)? または、次のようなことを行う必要があります。

setScrollListener(new ScrollListner {

//methods here.

});
4

1 に答える 1

3

Scrolllistener がアクティビティの外部から参照されている場合にのみ、メモリ リークが発生します。

コードでスクロールリスナーをそのまま使用すると、匿名クラスであるため、リスナーはアクティビティへの参照を保持します。ただし、リスナーへの唯一の参照は、このアクティビティからの参照であるビューからのものです。アクティビティが終了すると、ガベージ コレクターは一度にメモリ全体をクリーンアップできます。

于 2012-11-02T08:56:26.520 に答える