当我使用 Admob api 时,我发现它几乎将我的应用程序处理内存增加到 10MB。
在未启动 AdMob 的情况下运行时,在我的应用的"正在运行的服务"下仅显示 4MB 的处理内存
启用广告后,我发现我的应用程序处理大小达到14MB,并且没有减少。
下面是我的实现代码:
public void initAd(){
adView = new AdView(this, AdSize.BANNER, AD_ID);
adLinearLayout.addView(adView);
adView.loadAd(new AdRequest());
}
@Override
protected void onPause() {
super.onPause();
if (adView != null && adView.isReady()) {
log("destroying ads objects...");
adView.destroy();
adView.removeAllViews();
adView = null;
adLinearLayout.removeAllViews();
adLinearLayout = null;
}
}
我假设在onResume
或等效的东西中,您正在创建一个新的AdView。
我不会在这里使用adView.isReady()
。 我认为isReady实际上仅用于插页式广告,因此可能无法设置为true。 我不确定为什么它是广告界面的一部分。
您是否得到"销毁广告对象..."每次调用 OnPause 时都记录语句(尝试在 if 语句上方记录一些内容以确认(? 我的猜测是,你实际上并不是每次都破坏AdView,而是不断创建新的AdView。