我有服务会在特定时间点显示活动,此后每隔13次在该活动中显示admob插页式广告。显示插页式广告时,我的应用程序的RAM使用量增加了20MB,之后未收集垃圾。在接下来的第13次显示另一个插页式广告时,服务内存不会增加。使用Admob插页式广告时发生内存泄露
我为显示广告代码:
public void loadAndShowInterstitialAd() {
interstitial = new InterstitialAd(getApplicationContext());
interstitial.setAdUnitId(AD_UNIT_ID);
final AdRequest adRequest = new AdRequest.Builder()
.build();
Handler handler = new Handler(new Handler.Callback() {
@Override
public boolean handleMessage(Message msg) {
interstitial.loadAd(adRequest);
return true;
}
});
if (handler != null) {
handler.sendEmptyMessageDelayed(0, 200);
}
interstitial.setAdListener(new AdListener() {
@Override
public void onAdLoaded() {
super.onAdLoaded();
displayInterstitial();
}
});
}
public void displayInterstitial() {
if (interstitial.isLoaded()) {
interstitial.show();
}
}
我在下面的堆栈溢出问题试过几个解决方案,但没有为我工作。
Android Admob Interstitial Memory leak
Android AdMob causes memory leak?
你有一个例子吗?我正在尝试一切已经有同样的问题,但无法找到它。你为此做了一个新班吗? – Riverside
使用android:process属性来分隔要在不同进程中运行的活动。这解决了我的问题。适当地为您的项目使用它。 – venkat
在另一个进程中运行并不能解决我的问题。 – frankish