问题描述
我正在展示 MoPub Interstitial ad
到 activities
。
当我的设备在线/连接到互联网时。然后adListener
工作
正常。这在设备离线时不起作用。
情况:如果 ad
not loaded
或 Failed
那么我想在那里使用 Intent
移动下一个 activity
。 但是这 MoPubAdListener
在我离线时不起作用。
mInterstitial.load()
方法中的插页式 onCreate
@Override
public void onBackpressed() {
try {
customProgressDialogForAd.show(getSupportFragmentManager(),"before interstitial");
funInterstitialLoadShow();
} catch (Exception e){
QuestionActivity.super.onBackpressed();
}
//super.onBackpressed();
}
private void funInterstitialLoadShow(){
mInterstitial.setInterstitialAdListener(new MoPubInterstitial.InterstitialAdListener() {
@Override
public void onInterstitialLoaded(MoPubInterstitial moPubInterstitial) {
Toast.makeText(QuestionActivity.this,"adloaded",Toast.LENGTH_SHORT).show();
mInterstitial.show();
customProgressDialogForAd.dismiss();
}
@Override
public void onInterstitialFailed(MoPubInterstitial moPubInterstitial,MoPubErrorCode moPubErrorCode) {
customProgressDialogForAd.dismiss();
QuestionActivity.super.onBackpressed();
// PROBLEM HERE: THIS fun Now work when Device is OFFLINE(NO INTERNET);
}
@Override
public void onInterstitialShown(MoPubInterstitial moPubInterstitial) {
}
@Override
public void onInterstitialClicked(MoPubInterstitial moPubInterstitial) {
}
@Override
public void onInterstitialdismissed(MoPubInterstitial moPubInterstitial) {
customProgressDialogForAd.dismiss();
QuestionActivity.super.onBackpressed();
}
});
}
问题:当设备未连接到互联网时,onInterstitialFailed
不起作用。 [另一方面,如果设备中的互联网已打开,则 sdk 正常工作,例如,如果我们关闭广告,则 onInterstitialdismissed
工作]
任何解决方案:请
解决方法
调用MoPub的AdListener
有两种方式/方法/类型。
第一种方式:直接调用 adListener
mInterstitial.setInterstitialAdListener(new MoPubInterstitial.InterstitialAdListener() { .... }
第二种方式:在我们的 AdListener
implements
调用 MoPub Activity class
public class QuestionActivity extends AppCompatActivity implements MoPubInterstitial.InterstitialAdListener { ... }
解决方案:
您没有将 mInterstitial.load()
与 adListener
一起使用。如果不使用 AdListener
添加这行代码,Adlistener
的函数将不起作用因为该行是 adListener
的一部分。
// ====this function (with moPub ad listener)== called when use click back button
public void funInterstitialAdListener(){
mInterstitial.setInterstitialAdListener(new MoPubInterstitial.InterstitialAdListener() {
@Override
public void onInterstitialLoaded(MoPubInterstitial moPubInterstitial) {
Log.d(TAG,"onInterstitialLoaded: funAd loaded");
customProgressDialogForAd.dismiss();
mInterstitial.show();
}
@Override
public void onInterstitialFailed(MoPubInterstitial moPubInterstitial,MoPubErrorCode moPubErrorCode) {
customProgressDialogForAd.dismiss();
QuestionActivity.super.onBackPressed();
Log.d(TAG,"onInterstitialFailed: ad failed to load");
}
@Override
public void onInterstitialShown(MoPubInterstitial moPubInterstitial) {
}
@Override
public void onInterstitialClicked(MoPubInterstitial moPubInterstitial) {
}
@Override
public void onInterstitialDismissed(MoPubInterstitial moPubInterstitial) {
Log.d(TAG,"onInterstitialDismissed: Done");
QuestionActivity.super.onBackPressed();
}
});
// If we not use this mInterstitial.load() code,then function of AdListener not work.
mInterstitial.load();
// Must use this upper line with adListener. This line is part of AdListener.
}
快乐编码 :)