0
使用MAT和hprof转储文件,我发现在我的应用程序中有两个主要活动实例,当我旋转屏幕时。注意包的名字已被删节:)Google AdMob Interstital Ad导致内存泄漏
这是的MainActivity $ 1
MainActivity $ 1
类引用传入的对象。当我显示GC根源不包括弱引用的路径es在InterstitialAd类我得到以下输出。
我的统治或根方面的理解是,参考在InterstitialAd这是我的目的是防止这种垃圾收集。我不知道什么是智商或智商。
这是我的插页式广告实施。请注意,我的应用只有一项活动。 我将显示与InterstitialAd相关的部分,以便清晰和简洁。 主要活动
private InterstitialAd interstitialAd;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
interstitialAd = new InterstitialAd(this);
interstitialAd.setAdUnitId(getResources().getString(R.string.interstitial_ad_unit_id));
interstitialAd.setAdListener(new AdListener()
{
@Override
public void onAdLoaded()
{
if(isTheAppInFrontOfTheUser)
{
interstitialAd.show();
}
}
@Override
public void onAdClosed()
{
interstitialAd = null;
SharedPreferences userPrefs = PreferenceManager.getDefaultSharedPreferences(MainActivity.this);
SharedPreferences.Editor editor = userPrefs.edit();
editor.putLong("dateTimeOfLastInterstitialAd", System.currentTimeMillis());
editor.commit();
}
});
}
这就是所谓的请求在InterstitialAd
public void showInterstitialAd()
{
AdRequest adRequest = new AdRequest.Builder()
.addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
.build();
interstitialAd.loadAd(adRequest);
}
我在Destroy方法
@Override
protected void onDestroy()
{
interstitialAd = null;
super.onDestroy();
}
请帮助,我不知道我的插页式广告实施导致它泄漏的问题! – user3364963 2014-10-28 15:02:32