Как понять, что показывает LeakCanary?

Я установил в вашу библиотеку LeetCanary proetk. Он обнаружил утечку памяти и дал мне информацию о ней, но я не могу ее понять, потому что у меня нет такой практики в классе. Как точно понять, где ошибка и как ее исправить? Спасибо.

Public final class Activity extends AppCompatActivity {

InterstitialAd mInterstitialAd; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_fci); getWindow().setBackgroundDrawable(null); final ImageButton btn_pas = (ImageButton) findViewById(R.id.btn_pas); Glide.with(getApplicationContext()).load(R.drawable.fci_2).placeholder(R.color.white).into(btn_pas); mInterstitialAd = new InterstitialAd(this); mInterstitialAd.setAdUnitId("ca-app-pub-..."); requestNewInterstitial(); } @Override public void onBackPressed() { if (mInterstitialAd.isLoaded()) { mInterstitialAd.show(); super.onBackPressed(); } else { super.onBackPressed(); } requestNewInterstitial(); } private final void requestNewInterstitial() { AdRequest adRequest = new AdRequest.Builder().build(); mInterstitialAd.loadAd(adRequest); } public final void pas(View view) { Intent intent = new Intent(Activity.this, pas.class); startActivity(intent); } 

}

Я не могу приложить скриншот, поэтому опишу запись LeakCanary.

 static hk.o references ht.a leaks Activity instance 

Solutions Collecting From Web of "Как понять, что показывает LeakCanary?"

Вы испытываете утечку, потому что InterstitialAd сохраняет ссылку на активность. Вы должны заменить:

 mInterstitialAd = new InterstitialAd(this); 

с

 mInterstitialAd = new InterstitialAd(this.getApplicationContext()); 

Для получения дополнительной информации см. Мой ответ по аналогичному вопросу .