【问题标题】:admob ads get shown only onceadmob 广告只显示一次
【发布时间】:2018-02-11 14:28:34
【问题描述】:

我的活动中有 admob 插页式广告。 我的广告仅在单击按钮时显示一次,但在用户返回相同活动时不显示

如何实现在活动打开时显示的插页式广告? 我的代码只有在 Onclicklistner 中添加 show() 时才有效。

这是我的代码

class ProfileActivity : AppCompatActivity() {
    private lateinit var mInterstitialAd: InterstitialAd
    lateinit var profileimage:ImageView
    lateinit var username:EditText
    lateinit var cityname:EditText
    lateinit var aboutMe:EditText
    lateinit var addbutton:ImageButton
    lateinit var saveProfileImage:Button
    var GALLERY_IMAGE =0
      var ref = FirebaseDatabase.getInstance().reference

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_profile)
        val h = supportActionBar
        h!!.title = "My Profile"
        profileimage=findViewById(R.id.imageViewProfile)
        aboutMe=findViewById(R.id.aboutId)
        addbutton=findViewById(R.id.addprofilepic)
        saveProfileImage=findViewById(R.id.Saveprofileimage)
        username = findViewById(R.id.usernameId)
        cityname =findViewById(R.id.cityId)
        addbutton.setOnClickListener {
            val z =Intent(Intent.ACTION_PICK)
           z.type=("image/*")
            startActivityForResult(z,GALLERY_IMAGE)
            if (mInterstitialAd.isLoaded) {
                mInterstitialAd.show()
            } else {
                Log.d("TAG", "The interstitial wasn't loaded yet.")
            }
        }


        // Sample AdMob app ID: ca-app-pub-3940256099942544~3347511713
        MobileAds.initialize(this, "ca-app-pub-3940256099942544~3347511712")
        mInterstitialAd = InterstitialAd(this)
        mInterstitialAd.adUnitId = "ca-app-pub-3940256099942544/1033173712"
        mInterstitialAd.loadAd(AdRequest.Builder().build())
//        mInterstitialAd.show()

    }

mInterstitialAd.show() 在添加 oncreate 时不起作用,但仅在 setonclicklistner 中起作用。 谁能解释一下为什么?

【问题讨论】:

    标签: kotlin admob ads interstitial


    【解决方案1】:

    放这条线

    MobileAds.initialize(this, "ca-app-pub-3940256099942544~3347511712")
    

    紧接着

    setContentView(R.layout.activity_profile)
    

    【讨论】:

      【解决方案2】:

      您的广告只显示一次,这是因为您只是第一次设置它而没有再次重新加载广告。

      您需要添加 adListener 来重新加载广告:

      class MainActivity : Activity() {
      
          private lateinit var mInterstitialAd: InterstitialAd
      
          override fun onCreate(savedInstanceState: Bundle?) {
              super.onCreate(savedInstanceState)
              setContentView(R.layout.activity_main)
      
              MobileAds.initialize(this,
                  "ca-app-pub-3940256099942544~3347511713")
      
              mInterstitialAd = InterstitialAd(this)
              mInterstitialAd.adUnitId = "ca-app-pub-3940256099942544/1033173712"
              mInterstitialAd.loadAd(AdRequest.Builder().build())
      
              mInterstitialAd.adListener = object : AdListener() {
                    override fun onAdClosed() {
                           mInterstitialAd.loadAd(AdRequest.Builder().build())
                    }
              }
          }
      }
      

      如果它仍然不起作用,则可能是您的插页式广告尚未准备好展示。你可以通过这样做来检查它是否准备好了:

      mMyButton.setOnClickListener {
          if (mInterstitialAd.isLoaded) {
              mInterstitialAd.show()
          } else {
              Log.d("TAG", "The interstitial wasn't loaded yet.")
          }
      }
      

      希望对你有帮助!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-04-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多