Одно рекламное объявление через целое приложение
У меня есть активность с четырьмя фрагментами, и у этих фрагментов есть дочерние фрагменты. У меня есть статический счетчик со статическим InterstitialAd в Mainactivity, который вызывается через фрагменты, однако это приводит к утечке памяти. Есть ли лучшая практика?
Внутри основной
static int clicksCount,newsCount;
private static InterstitialAd mInterstitialAd;
public static void interstitalAd() {
clicksCount++;
if (clicksCount % 3 == 0) {
if (mInterstitialAd.isLoaded()) {
mInterstitialAd.show();
}
}
}
И всякий раз, когда мне нужно позвонить из фрагментов
MainActivity.interstitalAd();
1 ответ
Решение
Вероятно, нет необходимости или целесообразно рассказывать InterstitialAd
сам как статический член, поскольку он будет сохранять контекст, с которым он был создан, бесконечно.
Лучше сделать:
static int clicksCount,newsCount;
private InterstitialAd mInterstitialAd;
public void interstitalAd() {
clicksCount++;
if (clicksCount % 3 == 0) {
if (mInterstitialAd.isLoaded()) {
mInterstitialAd.show();
}
}
}
И тогда в вашем Fragment
:
MainActivity mainActivity = (MainActivity)getActivity();
mainActivity.interstitialAd();