5

簡略化されたコードは次のとおりです。

static Activity longLivedField;

onCreate(...) {     
    longLivedField = this;  // the only write to this field
}

私は、これをコンテキストリークとして主張し、修正を作成する人々を見てきました。一般的な修正は、適切な場所でフィールドを無効にすることです。たとえば、onPause()

onPause() {
    longLivedField = null;
}
4

1 に答える 1

3

はい、onPause()のフィールドを無効にしないと、メモリリークになります。ほとんどの場合、アクティビティへの静的参照を保持する必要はありません。あなたが達成しようとしていることは何ですか?

Android開発者のWebサイトには、次のようなメモリリークを回避する方法を説明する便利なページが含まれています。

メモリリークの回避

于 2012-05-18T19:24:50.883 に答える