代码之家  ›  专栏  ›  技术社区  ›  Lance Samaria

如何将AdListener设置为null

  •  0
  • Lance Samaria  · 技术社区  · 1 年前

    我有一个横幅广告和它的回调,但当我完成活动时,LeakCanary显示内存泄漏:

    com.android.gms,ads.nonagon.ad.webview

    泄漏:是(View.mContext引用了已销毁的活动)

    我在onDestroy中销毁了adView,但泄漏仍然发生。我认为问题可能来自 binding.adView.adListener = object : AdListener() { } 。如何在中将adListener设置为null onDestroy ?

    override fun onCreateView(
            inflater: LayoutInflater, container: ViewGroup?,
            savedInstanceState: Bundle?
        ): View? {
    
        val adRequest = AdRequest.Builder().build()
        binding.adView.loadAd(adRequest)
    
        binding.adView.adListener = object : AdListener() {
             // callbacks ...
        }
    }
    
    override fun onDestroy() {
        super.onDestroy()
    
        binding.adView.destroy()
    }
    

    XML文件:

    <com.google.android.gms.ads.AdView
        xmlns:ads="http://schemas.android.com/apk/res-auto"
        android:id="@+id/adView"
        ads:adSize="BANNER"
        ads:adUnitId="ca-app-pub-3940256099942544/6300978111">
        // ...
    </com.google.android.gms.ads.AdView>
    
    0 回复  |  直到 1 年前
    推荐文章