代码之家  ›  专栏  ›  技术社区  ›  user3137451

点击菜单按钮后,如何在启动新活动之前显示间隙广告?

  •  7
  • user3137451  · 技术社区  · 7 年前

    我使用选项菜单按钮进入第二个活动。当用户点击该菜单按钮时,在启动第二个活动后显示间隙广告。 但我想在启动第二个活动之前显示中间广告,当用户单击中间广告的关闭按钮时,第二个行为应该启动。

    我用下面的代码来显示插入式广告。

    case R.id.button_id:
       startActivity(new Intent(this, secondactivity.class ));               
    
                        interstitial = new InterstitialAd(getApplicationContext());
                        interstitial.setAdUnitId(getString(R.string.admob_interstetial_ad));
                        AdRequest adRequest9 = new AdRequest.Builder()
                                .addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
    
    
                                .build();
                        interstitial.loadAd(adRequest9);
                        interstitial.setAdListener(new AdListener() {
                            public void onAdLoaded() {
                                if (interstitial.isLoaded()) {
                                    interstitial.show();
                                }
                            }
                        });
    
    
                        return true;
    
    5 回复  |  直到 3 年前
        1
  •  25
  •   Aayush Goyal ADT    7 年前

    @user8240773建议的答案是正确的,但有一种更有效的方法来处理您的问题。这是我的代码:

    // Has the interstitial loaded successfully?
    // If it has loaded, perform these actions
    if(mInterstitialAd.isLoaded()) {
        // Step 1: Display the interstitial
        mInterstitialAd.show();
        // Step 2: Attach an AdListener
        mInterstitialAd.setAdListener(new AdListener() {
            @Override
            public void onAdClosed() {
                // Step 2.1: Load another ad
                AdRequest adRequest = new AdRequest.Builder()
                                        .addTestDevice(AdRequest.DEVICE_EMULATOR_ID)
                                        .build();
                mInterstitialAd.loadAd(adRequest);
    
                // Step 2.2: Start the new activity
                startActivity(new Intent(Activity1.this, Activity2.class));
            }
        });
    }
    // If it has not loaded due to any reason simply load the next activity
    else {
        startActivity(new Intent(Activity1.this, Activity2.class));
    }
    

        2
  •  4
  •   user8240773 user8240773    7 年前

    也许是这样?使用 onAdClosed

    interstitial.setAdListener(new AdListener() {
     public void onAdLoaded() {
      if (interstitial.isLoaded()) {
          interstitial.show();
       }
     }
         @Override
            public void onAdClosed() {
                 startActivity(new Intent(this, secondactivity.class ));    
                // Code to be executed when when the interstitial ad is closed.
                Log.i("Ads", "onAdClosed");
            } 
     });
    

    请在此处阅读更多信息: https://developers.google.com/admob/android/interstitial

        3
  •  1
  •   Nehemiah Narzary    4 年前

    在应用程序启动时加载广告。

    要在用户转到其他活动之前显示广告,请使用此代码。若你们想在点击次数后显示广告,你们可以使用计数器。

    这样地

       public InterstitialAd mInterstitialAd;
      private int counter = 0;
    
     AdRequest adRequest = new AdRequest.Builder().build();
    
        InterstitialAd.load(this, AD_UNIT_ID, adRequest, new InterstitialAdLoadCallback() {
            @Override
            public void onAdLoaded(@NonNull InterstitialAd interstitialAd) {
                // The mInterstitialAd reference will be null until
                // an ad is loaded.
                super.onAdLoaded(interstitialAd);
                mInterstitialAd = interstitialAd;
    
            }
    
            @Override
            public void onAdFailedToLoad(@NonNull LoadAdError loadAdError) {
                // Handle the error
    
                mInterstitialAd = null;
            }
        });
    

    使用此来显示

    case R.id.button_id:
    
    if (counter == 1) {
                    if (mInterstitialAd != null) {
                        mInterstitialAd.show(MainActivity.this);
                        mInterstitialAd.setFullScreenContentCallback(new FullScreenContentCallback(){
                            @Override
                            public void onAdDismissedFullScreenContent() {
                                // Called when fullscreen content is dismissed.
    
                                startActivity(new Intent(Activity1.this, Activity2.class));
                            
                           }
    
                            @Override
                            public void onAdFailedToShowFullScreenContent(AdError adError) {
                                // Called when fullscreen content failed to show.
                                Log.d("TAG", "The ad failed to show.");
                            }
    
                        });
    
                    } else {
                //load add again as above and visit second activity
             `startActivity(new Intent(Activity1.this, Activity2.class));`
              counter=0;
                       
                  
                    }
    
                } else { 
    
          startActivity(new Intent(Activity1.this, Activity2.class));`
                  }
    
        4
  •  0
  •   Omamuyovwi Lucky    4 年前

    Intent intent = new Intent(getApplicationContext(),  MainActivity.class); 
    startActivity(intent); 
        if (mInterstitialAd.isLoaded()) {
            mInterstitialAd.show();
        }
    finish();
    
        5
  •  0
  •   Kali Linux    3 年前
    package com.androidx.sharebd.fragment;
    
    import android.content.Context;
    import android.content.Intent;
    import android.os.Bundle;
    import android.util.Log;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.Button;
    
    import androidx.annotation.NonNull;
    import androidx.annotation.Nullable;
    
    import com.androidx.sharebd.R;
    import com.androidx.sharebd.activity.ConnectionManagerActivity;
    import com.androidx.sharebd.activity.ContentSharingActivity;
    import com.androidx.sharebd.model.TitleSupport;
    import com.genonbeta.android.framework.ui.callback.SnackbarSupport;
    import com.google.android.gms.ads.AdListener;
    import com.google.android.gms.ads.AdRequest;
    import com.google.android.gms.ads.InterstitialAd;
    
    public class HomeFragment
    extends com.genonbeta.android.framework.app.Fragment
    implements TitleSupport,
    SnackbarSupport,
    com.genonbeta.android.framework.app.FragmentImpl {
    
      @Nullable@Override
      public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
    
        final View view = inflater.inflate(R.layout.fragment_home, container, false);
    
        Button actionReceive = (Button) view.findViewById(R.id.receive);
    
        actionReceive.setOnClickListener(new View.OnClickListener() {@Override
          public void onClick(View view) {
    
            /// Interstitial ads Start
    
            InterstitialAd mInterstitial = new InterstitialAd(getActivity());
            mInterstitial.setAdUnitId(getString(R.string.interstitial_ad_unit));
            mInterstitial.loadAd(new AdRequest.Builder().build());
            mInterstitial.setAdListener(new AdListener() {@Override
              public void onAdLoaded() {
                // TODO Auto-generated method stub
                super.onAdLoaded();
                if (mInterstitial.isLoaded()) {
                  mInterstitial.show();
                }
              }
    
              @Override
              public void onAdClosed() {
    
                /// Your main code start ( where you want to go )
    
                startActivity(new Intent(getContext(), ConnectionManagerActivity.class).putExtra(ConnectionManagerActivity.EXTRA_ACTIVITY_SUBTITLE, getString(R.string.text_receive)).putExtra(ConnectionManagerActivity.EXTRA_REQUEST_TYPE, ConnectionManagerActivity.RequestType.MAKE_ACQUAINTANCE.toString()));
    
                /// Your main code end ( where you want to go )
    
                Log.i("Ads", "onAdClosed");
              }
    
              @Override
              public void onAdFailedToLoad(int errorCode) {
    
                /// Your main code start ( where you want to go )
    
                startActivity(new Intent(getContext(), ConnectionManagerActivity.class).putExtra(ConnectionManagerActivity.EXTRA_ACTIVITY_SUBTITLE, getString(R.string.text_receive)).putExtra(ConnectionManagerActivity.EXTRA_REQUEST_TYPE, ConnectionManagerActivity.RequestType.MAKE_ACQUAINTANCE.toString()));
    
                /// Your main code end ( where you want to go )
    
                Log.i("Ads", "onAdFailedToLoad");
              }
    
            });
    
            /// Interstitial ads end
    
          }
        });
    
        Button actionSend = (Button) view.findViewById(R.id.send);
        actionSend.setOnClickListener(new View.OnClickListener() {@Override
          public void onClick(View view) {
    
            /// Interstitial ads Start
    
            InterstitialAd mInterstitial = new InterstitialAd(getActivity());
            mInterstitial.setAdUnitId(getString(R.string.interstitial_ad_unit));
            mInterstitial.loadAd(new AdRequest.Builder().build());
            mInterstitial.setAdListener(new AdListener() {@Override
              public void onAdLoaded() {
                // TODO Auto-generated method stub
                super.onAdLoaded();
                if (mInterstitial.isLoaded()) {
                  mInterstitial.show();
                }
              }
    
              @Override
              public void onAdClosed() {
    
                /// Your main code start ( where you want to go )
                startActivity(new Intent(getContext(), ContentSharingActivity.class));
    
                /// Your main code End ( where you want to go )
    
                Log.i("Ads", "onAdClosed");
              }
    
              @Override
              public void onAdFailedToLoad(int errorCode) {
                startActivity(new Intent(getContext(), ContentSharingActivity.class));
                Log.i("Ads", "onAdFailedToLoad");
              }
    
            });
    
            /// Interstitial ads End
    
          }
        });
    
        return view;
      }
    
      @Override
      public CharSequence getTitle(Context context) {
        return context.getString(R.string.text_home);
      }
    
    }