Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在活动结束时显示InMobi间隙()_Android_Interstitial_Inmobi - Fatal编程技术网

Android 在活动结束时显示InMobi间隙()

Android 在活动结束时显示InMobi间隙(),android,interstitial,inmobi,Android,Interstitial,Inmobi,我正在这个Android应用程序上实现中间横幅,并希望它们在用户完成()通过后退按钮启动应用程序时出现。通过AdMob中介使用solo AdMob Interstitual时,它已经可以正常工作了,如下所示: @Override public void finish() { if (isBannerAllowed() && InterstitialBannerFactory.getInsterstitialSingleton().isReady()) {

我正在这个Android应用程序上实现中间横幅,并希望它们在用户完成()通过后退按钮启动应用程序时出现。通过AdMob中介使用solo AdMob Interstitual时,它已经可以正常工作了,如下所示:

@Override
public void finish() {
    if (isBannerAllowed() && InterstitialBannerFactory.getInsterstitialSingleton().isReady()) {
        InterstitialBannerFactory.getInsterstitialSingleton().show();
    }
            finish();
}
它显示AdMob横幅,当用户解聘时,它将按预期方式完成应用程序

但是,当我在中介中包含InMobi Intersital横幅时,它会显示横幅,但会立即完成应用程序(严格来说是应用程序的最后一个活动),而不会给用户提供查看横幅的机会。它出现并突然结束

我知道会发生这种情况,因为在某种程度上,末尾的finish()与InMobi Interstitual不兼容。我已经尝试过这样做:

@Override
public void finish() {
    setAppFinishing(true);
    if (isBannerAllowed() && InterstitialBannerFactory.getInsterstitialSingleton().isReady()) {
        InterstitialBannerFactory.getInsterstitialSingleton().show();
    }
}
注意开头的setAppFinishing(true)和结尾的finish()的删除

它变得更好了,因为它显示了InMobi间隙。但防止用户通过后退按钮退出应用程序

然后我在AdListerner的onDismissScreen()上尝试了这一点,以补充上述代码:

@Override
public void onDismissScreen(Ad ad) {
    // prepares the next
    if (!isAppFinishing()) {
        InterstitialBannerFactory.loadAd();
    }
    else {
        finish();
    }
}
但它不会生效,行为是一样的,应用程序不会退出

有人有更聪明的解决方案吗

顺便说一句,我使用的是所有相关LIB的最新版本


尊敬。

InMobi的间隙显示在同一活动中,而AdMob的间隙看起来像是在新活动中打开的

要解决此问题,您可以覆盖应用程序中的“后退”按钮。有关详细信息,请访问-

范例-

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if ((keyCode == KeyEvent.KEYCODE_BACK)) {
        Log.d(this.getClass().getName(), "back button pressed");
        if (interstitial.isReady()){
            interstitial.show();
            return true;
        }
    }
    return super.onKeyDown(keyCode, event);
}
注意:onCreate创建一个新的中间对象并对其调用加载。 填隙关闭时最终完成应用程序的代码:

@Override
public void onDismissScreen(Ad ad) {
   finish();
}

-SDK开发人员Akshay,InMobi

InMobi的Interstitual显示在同一活动中,而AdMob的Interstitual看起来像是在新活动中打开的

要解决此问题,您可以覆盖应用程序中的“后退”按钮。有关详细信息,请访问-

范例-

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if ((keyCode == KeyEvent.KEYCODE_BACK)) {
        Log.d(this.getClass().getName(), "back button pressed");
        if (interstitial.isReady()){
            interstitial.show();
            return true;
        }
    }
    return super.onKeyDown(keyCode, event);
}
注意:onCreate创建一个新的中间对象并对其调用加载。 填隙关闭时最终完成应用程序的代码:

@Override
public void onDismissScreen(Ad ad) {
   finish();
}

-SDK开发人员Akshay,InMobi

我还没有机会尝试它,但是覆盖onKeyDown以抓住后退按钮似乎是一个不错的方法。谢谢。我还没有机会尝试一下,但是覆盖onKeyDown来抓住back按钮似乎是一个很好的方法。谢谢