2

当我使用 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;              
        }    
    }
4

1 回答 1

1

我假设在onResume或类似的情况下,您正在创建一个新的 AdView。

我不会adView.isReady()在这里使用。我认为 isReady 实际上只用于插页式广告,因此它可能不会设置为 true。我不知道为什么它是广告界面的一部分。

每次调用 onPause 时是否都会收到“正在销毁广告对象...”日志记录语句(尝试在 if 语句上方记录一些内容以确认)?我的猜测是,您实际上并不是每次都在破坏 AdView,而是不断创建新的。

于 2012-05-21T17:41:15.430 回答