我有一个大约有四个 fragment 的 Activity ,这些 fragment 有子 fragment 。我在通过 fragment 调用的 Mainactivity 中有一个带有静态 InterstitialAd 的静态计数器,但是它会导致内存泄漏。有更好的做法吗?
内部主要
static int clicksCount,newsCount;
private static InterstitialAd mInterstitialAd;
public static void interstitalAd() {
clicksCount++;
if (clicksCount % 3 == 0) {
if (mInterstitialAd.isLoaded()) {
mInterstitialAd.show();
}
}
}
每当我需要从 fragment 中调用它时
MainActivity.interstitalAd();
最佳答案
可能没有必要也不明智地将 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();
关于java - 整个应用程序中的一个插页式广告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32146012/