我正在尝试在一些活动结束时显示插页式广告.问题是插页式广告似乎阻止了对活动进行垃圾回收,从而导致内存不足异常.我该如何解决?提前致谢.
public class AdActivity extends FragmentActivity{//...protected InterstitialAd interstitial;@OverrIDeprotected voID onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //... // Create the interstitial. interstitial = new InterstitialAd(this); interstitial.setAdUnitID(INTERSTITIAL_UNIT_ID); // Create ad request. AdRequest adRequest2 = new AdRequest.Builder().addTestDevice(AdRequest.DEVICE_ID_EMulATOR) .addTestDevice(deviceid) .build(); // Begin loading interstitial. interstitial.loadAd(adRequest2);}@OverrIDepublic voID onPause() { super.onPause(); displayInterstitial();}public voID displayInterstitial() { if (interstitial.isLoaded() && System.currentTimeMillis() >= lastInterstitial + timeLag * 1000) { lastInterstitial = System.currentTimeMillis(); interstitial.show(); }}
我用它像:
public class ActivityA extends AdActivity{ //...}
解决方法:
好吧,我似乎已经通过更改来解决它
interstitial = new InterstitialAd(this);
至
interstitial = new InterstitialAd(getApplicationContext());
我不完全了解java / androID中的内存管理,但我认为这是因为Activity引用非页内广告,而非页内广告也引用了Activity,因此都不会被垃圾回收.传递应用程序上下文而不是Activity上下文可以防止这种周期依赖性并解决问题.希望这可以帮助某人:D.
总结以上是内存溢出为你收集整理的Java-Android Admob插页式内存泄漏全部内容,希望文章能够帮你解决Java-Android Admob插页式内存泄漏所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)