当我使用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;
}
}
答案 0 :(得分:1)
我假设在onResume
或类似内容中,您正在创建新的AdView。
我不会在这里使用adView.isReady()
。我认为isReady实际上只用于插页式广告,因此可能无法设置为true。我不确定为什么它是广告界面的一部分。
每次调用onPause时,您是否获得“销毁广告对象...”日志记录语句(尝试记录if语句上方的内容以确认)?我的猜测是,你实际上并没有每次都在销毁AdView,但是你不断创建新的AdView。