【问题标题】:Android Fragment InterstitialAd onBackPressedAndroid Fragment InterstitialAd onBackPressed
【发布时间】:2015-08-02 19:06:15
【问题描述】:

我正在使用带有片段的导航抽屉,并且在其中一个片段中我有一个多级列表。 在我的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);
    }

【问题讨论】:

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


    【解决方案1】:

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

    所以从onAdClosed()(以及onCreate())调用它。

    【讨论】:

    • 我更新了问题,你能再看看吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-10
    • 1970-01-01
    相关资源
    最近更新 更多