【问题标题】:Google play services admob - super.onAdLoaded(), super.onAdFailedToLoad(...)谷歌播放服务 admob - super.onAdLoaded(), super.onAdFailedToLoad(...)
【发布时间】:2014-04-01 18:14:47
【问题描述】:
快速提问:
在 Android 活动的上下文中,
在adListenner 中,当覆盖onAdLoaded(){} 和onAdFailedToLoad(int errorCode){} 时,是否应该在覆盖的方法中调用super.onAdLoaded() 和super.onAdFailedToLoad(int errorCode)?
如果是这样,调用应该在方法的开头还是结尾进行?
【问题讨论】:
标签:
java
android
admob
google-play-services
interstitial
【解决方案1】:
一个非常好的问题,想知道我自己 - 如果您想保留父类的逻辑,这通常是一种很好的做法。在这种情况下,它不会有所作为。
com.google.android.gms.ads.AdListener 实际上是一个带有空方法的抽象类 - 我相信监听器曾经是一个接口,它迫使您实现所有方法,因此更改为抽象类。
您可以使用 Java 反编译器,例如 JD-GUI,然后自己查看代码 (google-play-services_lib\libs\google-play-services.jar):
package com.google.android.gms.ads;
public abstract class AdListener
{
public void onAdClosed() {}
public void onAdFailedToLoad(int errorCode) {}
public void onAdLeftApplication() {}
public void onAdOpened() {}
public void onAdLoaded() {}
}
【解决方案2】:
AdListener 是一个接口,没有超类方法可以调用。
在任何情况下,通常在 Java 中,适配器(为方便起见而提供的抽象侦听器实现)在适配器中不包含任何实现。这些方法就在那里,因此您不需要实现那些您不使用的方法。