2012-05-19 152 views
2

當我使用Admob API時,發現它幾乎將我的應用處理內存增加到了10MB。AdMob消耗更多內存

跑不啓動AdMob將顯示下運行我的應用程序

服務

使廣告我發現達到我的應用程序處理大小14MB,它是不會被降低後只有4MB處理存儲器。下面

是我的實現代碼:

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;    
     }  
    } 

回答

1

我假設在onResume或等價的東西,你要創建一個新的AdView。我不會在這裏使用adView.isReady()。我認爲isReady僅用於插頁式廣告,因此可能無法設置爲true。我不確定爲什麼它是廣告界面的一部分。

是否每次調用onPause時都會得到「銷燬廣告對象...」日誌語句(嘗試記錄if語句上方的某些內容以確認)?我的猜測是,你實際上並沒有每次都銷燬AdView,但你不斷創建新的。

+0

謝謝埃裏克,在我的實際代碼中,如果檢查現有廣告實例的可用性的條件。 如果我在收到廣告之前銷燬廣告對象,那麼它會拋出異常,忽略只有在銷燬之前使用iReady。 我曾嘗試銷燬廣告對象以減少adMob佔用的內存,但沒有運氣。 – Abilash