com.google.android.gms.ads.InterstitialAd累积内存使用量

时间:2016-07-11 09:44:01

标签: android memory-management firebase admob interstitial

在我的活动的 onCreate 中,我实例化并加载新的插页式广告

private InterstitialAd interstitial;

...

interstitial = new InterstitialAd(this);
interstitial.setAdUnitId(INTERSTITIAL_AD_UNIT_ID);
AdRequest adInterstitialRequest = new AdRequest.Builder().build();
interstitial.loadAd(adInterstitialRequest);

然后我用以下内容记录可用内存:

private void showFreeMemory() {
        ActivityManager.MemoryInfo mi = new ActivityManager.MemoryInfo();
        ActivityManager activityManager = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
        activityManager.getMemoryInfo(mi);
        long availableMegs = mi.availMem / (1024 * 1024); 
        Log.i("Mem",availableMegs + " MB");
}

我可以注意到每次重新创建(使用this.recreate())活动时,可用内存少于上一次。无需加载插页式可用内存不会更改。所以我认为即使插页式广告符合GC条件,插页式内容也会以某种方式保存在内存中。 有没有办法强制插页式广告释放内存? 现在我正在使用

com.google.firebase:firebase-core:9.2.0
com.google.firebase:firebase-ads:9.2.0

但是com.google.android.gms:play-services-ads:9.0.0是相同的。

1 个答案:

答案 0 :(得分:0)

尝试使用

创建interstitialAd
var testArray = [Test]()
for i in 0 ..< 4 {
let test = Test()
test.testId = i * 3
test.testIndex = i
test.testDate = NSDate()
test.title = "Test \(i)"
test.status = "waiting"
testArray.append(test)
}

而不是传递活动。