October 22, 2024
Chicago 12, Melborne City, USA
Android

expanded collapsible banner ads disapear slowly when change detination of navigation


I have page1 and page2. page2 has a collapsible banner ad. page1 navigate to page2. Then the collapsible banner ad show of page2. The collapsible banner ad disapear slowly when I back from page2. This question won’t happen on two Activity. How can I solve this problem on navigation. I reproduced this issue, please check NavigationAdTest. Please help. I don’t have any solution ideas yet

// loadBanner() on page1 that is invoked on onViewCreated()
private fun loadBanner() {
    adView = AdView(requireContext())
    adView!!.adUnitId = "ca-app-pub-3940256099942544/9214589741"

    adView!!.setAdSize(adSize)

    // Create an extra parameter that aligns the bottom of the expanded ad to
    // the bottom of the bannerView.
    val extras = Bundle()
    extras.putString("collapsible", "bottom")

    val adRequest = AdRequest.Builder()
//            .addNetworkExtrasBundle(AdMobAdapter::class.java, extras)
        .build()

    adView!!.loadAd(adRequest)

    adView!!.adListener = object : AdListener() {
        override fun onAdLoaded() {
            super.onAdLoaded()
            binding.bannerAdContainer.removeAllViews()
            binding.bannerAdContainer.addView(adView)
        }
    }

    viewLifecycleOwner.lifecycle.addObserver(object : DefaultLifecycleObserver {

        override fun onPause(owner: LifecycleOwner) {
            super.onPause(owner)
            adView?.pause()
            Log.d(TAG, "HomeFragment onPause: adView?.pause()")
        }

        override fun onResume(owner: LifecycleOwner) {
            super.onResume(owner)
            adView?.resume()
            Log.d(TAG, "HomeFragment onResume: adView?.resume()")
        }

        override fun onDestroy(owner: LifecycleOwner) {
            adView?.destroy()
            Log.d(TAG, "HomeFragment onDestroy: adView?.destroy()")
            super.onDestroy(owner)
        }
    })
}
// loadBanner() on page2 that is invoked on onViewCreated()
private fun loadBanner() {
    adView = AdView(requireContext())
    adView!!.adUnitId = "ca-app-pub-3940256099942544/2014213617"

    adView!!.setAdSize(adSize)

    // Create an extra parameter that aligns the bottom of the expanded ad to
    // the bottom of the bannerView.
    val extras = Bundle()
    extras.putString("collapsible", "bottom")

    val adRequest = AdRequest.Builder()
        .addNetworkExtrasBundle(AdMobAdapter::class.java, extras)
        .build()

    adView!!.loadAd(adRequest)

    adView!!.adListener = object : AdListener() {
        override fun onAdLoaded() {
            super.onAdLoaded()
            binding.bannerAdContainer.removeAllViews()
            binding.bannerAdContainer.addView(adView)
        }
    }

    viewLifecycleOwner.lifecycle.addObserver(object : DefaultLifecycleObserver {

        override fun onPause(owner: LifecycleOwner) {
            super.onPause(owner)
            adView?.pause()
            Log.d(TAG, "AccountFragment onPause: adView?.pause()")
        }

        override fun onResume(owner: LifecycleOwner) {
            super.onResume(owner)
            adView?.resume()
            Log.d(TAG, "AccountFragment onResume: adView?.resume()")
        }

        override fun onDestroy(owner: LifecycleOwner) {
            adView?.destroy()
            Log.d(TAG, "AccountFragment onDestroy: adView?.destroy()")
            super.onDestroy(owner)
        }
    })
}



You need to sign in to view this answers

Leave feedback about this

  • Quality
  • Price
  • Service

PROS

+
Add Field

CONS

+
Add Field
Choose Image
Choose Video