なんか以前からよくリークしてましたよね、Admob。
今回は, 以下バージョン。
implementation "com.google.firebase:firebase-core:15.0.2"
implementation "com.google.firebase:firebase-ads:15.0.1"
Activity#finish()後、
百発百中でLeakCanaryが鳴く。
情報はないか、と探すが古いものばかり。
最新の公式サンプルを見る。
AndroidManifest.xmlの「INTERNET」関連の2行はもう不要だったり。
サンプル通りライフサイクル周り記述しても消えやしない。
百発百中でアウトでござる。
// Called when leaving the activity
public override fun onPause() {
ad_view.pause()
super.onPause()
}
// Called when returning to the activity
public override fun onResume() {
super.onResume()
ad_view.resume()
}
// Called before the activity is destroyed
public override fun onDestroy() {
ad_view.destroy()
super.onDestroy()
}
公式サンプルの中に以下を見つけた。
if (adView.getParent() != null) {
((ViewGroup) adView.getParent()).removeView(adView);
}
RecyclerViewAdapter.java#L146-L148
ぶら下がったままだった模様。
以下で完。
inline fun AdView.remove() {
if (parent != null) {
(parent as ViewGroup).removeView(this)
}
}
最初のライフサイクル周りは、
公式マニュアル通り不要だったりしたが。