【问题标题】:How can I re-upload after I close the Admob 2021 interstitial?关闭 Admob 2021 插页式广告后如何重新上传?
【发布时间】:2021-05-25 19:53:28
【问题描述】:

我正在改用新的 Admob 2021 插页式广告。 New InterstitialAd我的主赛事有10集,无论我切换到哪一集,都会出现插页式广告。但是,当我回到活动时,我注意到它没有再次显示。我要做的是关闭插页式广告后重新加载。

公共类 MainActivity 扩展 Activity {

private InterstitialAd mInterstitialAd;

@Override
protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);

  MobileAds.initialize(this, new OnInitializationCompleteListener() {
    @Override
    public void onInitializationComplete(InitializationStatus initializationStatus) {}
  });
  AdRequest adRequest = new AdRequest.Builder().build();

  InterstitialAd.load(this,"ca-app-pub-3940256099942544/1033173712", adRequest, new InterstitialAdLoadCallback() {
  @Override
  public void onAdLoaded(@NonNull InterstitialAd interstitialAd) {
    // The mInterstitialAd reference will be null until
    // an ad is loaded.
    mInterstitialAd = interstitialAd;
    Log.i(TAG, "onAdLoaded");
  }

  @Override
  public void onAdFailedToLoad(@NonNull LoadAdError loadAdError) {
    // Handle the error
    Log.i(TAG, loadAdError.getMessage());
    mInterstitialAd = null;
  }
});

} }

【问题讨论】:

    标签: android admob interstitial


    【解决方案1】:

    如果你可以使用 hilt 这很简单,只需复制粘贴这段代码,它的代码在我的生产应用程序中工作得很好

    AdmobUtil.kt

    @Singleton
    class AdmobUtil @Inject constructor(@ApplicationContext private val context: Context) {
    
        companion object {
            private const val TEST_INTERSTITIAL_AD_UNIT_ID = "ca-app-pub-3940256099942544/1033173712"
    
            private const val INTERSTITIAL_AD_UNIT_ID = ""
        }
    
        private lateinit var interstitialAd: InterstitialAd
    
        init {
            MobileAds.initialize(context) {
                loadAdmobInterstitialAd()
            }
        }
    
        private val interstitialAdUnitId = when {
            (BuildConfig.DEBUG) -> TEST_INTERSTITIAL_AD_UNIT_ID
            else -> INTERSTITIAL_AD_UNIT_ID
        }
    
        private fun loadAdmobInterstitialAd() {
    
            interstitialAd = InterstitialAd(context)
    
            interstitialAd.adUnitId = interstitialAdUnitId
    
            interstitialAd.loadAd(AdRequest.Builder().build())
    
            interstitialAd.adListener = object : AdListener() {
                override fun onAdClosed() {
                    super.onAdClosed()
                    reloadInterstitialAd()
                }
    
                override fun onAdFailedToLoad(error: LoadAdError?) {
                    super.onAdFailedToLoad(error)
                }
            }
        }
    
        fun reloadInterstitialAd() {
            if (::interstitialAd.isInitialized) interstitialAd.loadAd(AdRequest.Builder().build())
        }
    
        fun showInterstitialAd() {
            if (::interstitialAd.isInitialized && interstitialAd.isLoaded) interstitialAd.show()
        }
    
    }
    

    MainApplication.kt

    @HiltAndroidApp
    class MainApplication : Application() {
    
        @Inject
        lateinit var admobUtil: AdmobUtil
    
        override fun onConfigurationChanged(newConfig: Configuration) {
            super.onConfigurationChanged(newConfig)
            admobUtil.reloadInterstitialAd()
        }
    }
    

    MainAcitivty.kt

    @AndroidEntryPoint
    class MainActivity : AppCompatActivity(R.layout.main_activity) {
    
        @Inject
        lateinit var admobUtil: AdmobUtil
    
        override fun onCreate(savedInstanceState: Bundle?) {
            super.onCreate(savedInstanceState)
            admobUtil.showInterstitialAd()
        }
    
    }
    

    【讨论】:

    猜你喜欢
    • 2020-09-25
    • 1970-01-01
    • 2018-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多