我有一个横幅广告和它的回调,但当我完成活动时,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>