Android Fragment InterstitialAd onBackPressed

时间:2015-08-02 19:06:15

标签: java android android-fragments android-actionbar admob

我正在使用带有片段的导航抽屉,并且在其中一个片段中我有一个多级列表。 在我的ActionBarActivity.java我有:

 @Override
    public boolean onOptionsItemSelected(MenuItem item) {
       ...
        // returning to previous
        if (item != null && item.getItemId() == android.R.id.home) {
            onBackPressed();
            return true;
        }
        return super.onOptionsItemSelected(item);
    }

onBackPressed();

public void onBackPressed() {
        // return to the previous fragment stack
        FragmentManager fragmentManager = getFragmentManager();
        if (fragmentManager.getBackStackEntryCount() > 0) {
            fragmentManager.popBackStack();
            // show the ad
            if (mInterstitialAd.isLoaded()) {
                mInterstitialAd.show();
            }
        } else {
            super.onBackPressed();
        }
    }

当用户单击多级列表片段中的后退按钮时,我想显示InterstitialAd。上述解决方案有效,但它只在单个项目上显示一次广告。

所以这是一个示例运行:

- user opens the app and first fragments lists a list of items
- user clicks on Item #1 and enters that item details
- user clicks back (Ad is shown) and goes back to all items
- user clicks on Item #2 and enters that item details
- user clicks back (but Ad is not shown) and goes back to all items

不确定为什么当用户第二次点击后面等等时,广告不会显示。有人可以建议一个可能的解决方案吗?

更新#1: 以下是我在onCreate上创建插页式广告的方式:

    // interstitial ads
    mInterstitialAd = new InterstitialAd(this);
    mInterstitialAd.setAdUnitId(AD_ID);

    mInterstitialAd.setAdListener(new AdListener() {
       @Override
       public void onAdClosed() {
       }
   });
   requestNewInterstitial();

和:

private void requestNewInterstitial() {
        AdRequest adRequest = new AdRequest.Builder()
                .addTestDevice("SEE_YOUR_LOGCAT_TO_GET_YOUR_DEVICE_ID")
                .build();
        mInterstitialAd.loadAd(adRequest);
    }

1 个答案:

答案 0 :(得分:0)

在显示插页式广告后,您需要再次致电interstital.loadAd()

onAdClosed()(以及onCreate())中调用它。