在活动中加载admob广告并将其用于不同的片段,以减少加载广告的时间

时间:2016-11-25 13:55:51

标签: android admob banner-ads

我有一个活动,其中我点击片段中的一个按钮替换片段。 在单击片段时,它会用另一个片段替换当前片段。

我的问题是,我是否需要一次又一次地为同一活动中的每个片段调用下面的代码,或者我可以将代码置于活动中并以片段形式显示广告

    mAdView = (AdView)v.findViewById(R.id.beautyfragment);
    AdRequest adRequest = new AdRequest.Builder().build();
    mAdView.loadAd(adRequest);

因此,对于每个片段交易,我需要发布广告请求,或者只有我可以在持有片段的活动中发出一次请求,并以我想要的任何片段显示广告。

我已在每个片段的顶部和底部放置 admob横幅广告,以便在点击时显示。

我有一些关于它的问题 - >

  1. 我可以在活动中加载广告并将其显示在片段中,因此在片段之间进行转换时,放置在同一活动中的片段中不需要时间。如果是,请告诉我代码它

  2. 使用不同的adUnitId 对屏幕上显示的横幅广告中的相同片段或不同片段有什么不同活动

2 个答案:

答案 0 :(得分:0)

您可以控制是否找到AdView。根据您的州要求,您可以放置​​AdView

  1. 直接进入您的活动,位于您正在交换的片段下方。
  2. 进入片段(放置在您正在交换的片段下方)。
  3. 选择权在你手中。

答案 1 :(得分:0)

确定。您希望在主活动中加载广告,并在片段加载时快速将其显示在片段中。 1-您只需在活动的onCreate方法中加载广告,然后再设置AdListener。 2-在AdListener中,当用户在onAdClosed方法中关闭广告时,您可以再次加载广告。 3-提交片段事务时需要显示广告。 (哪些广告已加载到活动&onCreate方法中) 4.用户将关闭广告,广告将在onAdClosed方法的后台再次加载,以便在用户切换到另一个片段时再次显示。

以下是放入主要活动的onCreate方法的代码。

    mInterstitialAd = new InterstitialAd(this);
    mInterstitialAd.setAdUnitId("your ad unit id");
    mInterstitialAd.loadAd(new AdRequest.Builder()
            .addTestDevice("your test device id")
            .build());

    mInterstitialAd.setAdListener(new AdListener(){
        @Override
        public void onAdLoaded() {
            Log.e("TAG", "Ad loaded");
        }

        @Override
        public void onAdClosed() {
            Log.i("TAG", "Ad closed");
            mInterstitialAd.loadAd(new AdRequest.Builder()
                    .addTestDevice("your test device id")
                    .build());
        }
    });

这是用于片段事务的代码。

FragmentManager fm = getSupportFragmentManager();
        FragmentTransaction ft = fm.beginTransaction();
        ft.replace(R.id.content, fragment);
        ft.commit();

        if (mInterstitialAd.isLoaded()) {
            mInterstitialAd.show();
        }