Intereting Posts
Android: использование WebView вне контекста активности Fragment ReenterTransition не работает. Нужна помощь, разъясняющая различные переходы Фрагмента Как я могу показать виджет Android App Label / Name Android Listview показывает только один элемент Кнопка с левой иконкой и текстом идеально выровнена Правый выравнивающий столбец в таблице таблиц Android Как изменить цвет значка выбранной вкладки TabLayout? Размер текста с разным разрешением Предварительный просмотр дизайнера студии Android: как включить раму устройства? Убейте все действия, когда нажата клавиша HOME нажата андроид Постоянная ошибка сети для диалогового окна запроса Facebook на Galaxy Note Есть ли способ получить частоту обновления дисплея программно? Android лучший способ заставить катушку, кажется, вращаться Как я могу это сделать в Android. Активность -> WebBrowser -> Активна, но нажмите Назад, не увидите WebBrowser Как я могу определить, какой размер (в пикселях) должен отображаться для Android, чтобы отображать это изображение правильно на устройствах?

Как понять, что показывает 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()); 

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