我在使用AdMob插页式广告的游戏中遇到了一个大问题。当计时器结束或玩家退出该轮时,将显示广告。所以在活动结束时。 没有连接时,没关系。活动的变化很快。当有一个神和快速连接相同。问题是当有一个值得联系的时候,当玩家完成这一轮时,有很长一段时间(有时广告从未显示)活动不会改变,所以玩家可以继续玩甚至比较艰难的时候是过度。这是我的代码:
public void onDismissScreen(Ad arg0) {
// TODO Auto-generated method stub
}
public void onFailedToReceiveAd(Ad arg0, ErrorCode arg1) {
Intent data = new Intent();
data.putExtra("team", team);
myDB.close();
data.putExtra("A", A);
data.putExtra("B", B);
// data.putExtra("contaDb", this.contDb);
setResult(1, data);
finish();
}
public void onLeaveApplication1(Ad arg0) {
// TODO Auto-generated method stub
}
public void onPresentScreen1(Ad arg0) {
// TODO Auto-generated method stub
}
public void onReceiveAd(Ad ad) {
Log.d("OK", "Received ad");
if (ad == interstitial) {
if(ad.isReady())
interstitial.show();
}
Intent data = new Intent();
data.putExtra("team", team);
myDB.close();
data.putExtra("A", A);
data.putExtra("B", B);
// data.putExtra("contaDb", this.contDb);
setResult(1, data);
finish();
}
public void onDismissScreen1(Ad arg0) {
// TODO Auto-generated method stub
}
public void onLeaveApplication(Ad arg0) {
// TODO Auto-generated method stub
}
public void onPresentScreen(Ad arg0) {
// TODO Auto-generated method stub
}
并且:
public boolean isOnline() {
ConnectivityManager cm = (ConnectivityManager) this
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo ni = cm.getActiveNetworkInfo();
if (ni == null)
return false;
return ni.isConnected();
}
public void visualizzaRisultatoActivity() {
if (isOnline()) {
interstitial = new InterstitialAd(this, "0976ebb3525a494a");
// Create ad request
AdRequest adRequest = new AdRequest();
// Begin loading your interstitial
interstitial.loadAd(adRequest);
// Set Ad Listener to use the callbacks below
interstitial.setAdListener(this);
} else {
Intent data = new Intent();
data.putExtra("team", team);
myDB.close();
data.putExtra("A", A);
data.putExtra("B", B);
// data.putExtra("contaDb", this.contDb);
setResult(1, data);
finish();
}
}
当时间结束或玩家取消回合时,会调用VisualizzaRisultatoActivity。提前致谢
答案 0 :(得分:1)
最佳做法是在游戏过程中预加载插页式广告,然后在游戏结束时进行轮询:
if(interstitial.isReady()) {
interstitial.show();
}
当您的插页式广告调用isReady
时,onReceiveAd
标记会设置,但您可以等到游戏结束时再显示该标记。请注意,您可能应该在游戏活动中请求/显示您的插页式广告,而不是您的VisualizzaRisultatoActivity。预计插页式广告将与您传递给其构造函数的活动一起显示。