一个插页式广告通过整个应用

时间:2015-08-21 17:20:51

标签: java android memory-leaks admob interstitial

我有四个片段的活动,这些片段有子片段。我有一个静态计数器,在Mainactivity中通过片段调用静态InterstitialAd,但它会导致内存泄漏。有更好的做法吗?

主要内部

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 个答案:

答案 0 :(得分: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();