我有一个服务,它将在特定的时间点显示一个活动,在该活动之后,每13次我都显示一个admob插屏广告。当显示插屏广告时,我的应用程序的RAM使用量增加了20MB,之后它不会被垃圾收集。在接下来的13次显示另一个插屏广告时,服务内存没有增加。
我显示广告的代码:
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间内存泄漏
Android AdMob导致内存泄漏?
我已经通过在另一个进程中运行Ad活动解决了这个问题。我猜由于某些原因,android在进程内存中保存活动的时间比需要的时间要长。希望它能帮助人们解决这个问题。
我今天讨论了这个问题,最后我得到了一个修复:在您的活动中,在onDestroy()中:
>
将所有AdListeners设置为空。
@Override
public void onDestroy(){
super.onDestroy();
mMainView.removeView(adView);
adView = null;
interstitial.setAdListener(null);
}
在您的情况下,可能将AdListener设置为null就足够了。
P/S:
因为泄漏以如此多的方式发生,以防有人忽略这一点:记住使用Context.getApplicationContext()(像OP所做的那样)初始化Interstitial,而不是通过您的活动——这绝对会造成泄漏——因为Interstitial现在似乎持有对您的活动的引用,并且它永远不会离开,所以永远不要让您的活动离开...
Interstitial interstitial = new Interstitial(getApplicationContext())
我想在我的viewPager中添加间隙广告,但一旦间隙广告关闭(或打开时),我就遇到了容器“消失”(或被销毁)的问题。一旦滑动,就会自动调用@Override方法“public void destructionitem(ViewGroup container,int position,Object Object)”,并调用间隙ad,但是,视图不会像未调用间隙ad时那样再次膨胀。 我的类扩展了Pag
我正在遵循本教程 到目前为止,当我点击按钮时,它就可以工作了。然而,我似乎无法让它在viewDidLoad上显示中间广告。 这就是我所拥有的: 控制台不断向我显示: 2016-02-04 22:27:51.855 GoogleAdamObjutorial[3394:56415]要获取此设备上的测试广告,请致电:request。testDevices=@[kGADSimulatorID]; 单击按钮
我成功地在我的应用程序中实现了AdMob中间广告,但唯一的问题是它们不可点击。 下面是我的AdMob.java类: 和MainPageActivity.java文件: 我不知道当用户升级并按下播放按钮(这将引导他进入下一个级别)时,该如何显示间隙广告。当他按下home键时,间隙广告就会出现,这会把他带到MainActivity屏幕上。 有人能帮我把广告点击一下吗?另外,有什么建议,如何添加的间隙广
我想在一定的时间间隔后,在主要活动上添加一个间隙广告。我搜索,似乎没有参考代码这样做。感谢你的帮助我该怎么做?任何示例代码都将是有用的。多谢了。
我正在完成一个视频应用程序,我在离开视频activity时显示间隙广告。我只想每X分钟显示一次,但似乎每次我离开那个屏幕时它都在显示。 这是我的activity密码。 onCreate: onbackpressed: 当然,在admob中是这样设置的: 注意:我的应用程序没有发布,所以它正在显示“预览”o“示例”。我正在使用我的广告单元ID: 谢谢,
我正在为我的iOS应用程序使用RoboVM绑定来显示AdMob间隙。当我关闭间隙广告时,我将失去所有触摸控制。有没有办法检测广告正在关闭,以便我可以将触摸放回游戏?或者有没有更好的方法来实现间隙?下面是我的代码: //将触摸返回游戏 //UIApplication.getSharedApplication(). getKeyWindow(). setRootViewController(rootV