# Android 埋点之点击事件上报 这个文章提到无法自动监听Fragment生命周期的,其实是可以的。 代码如下,其实很简单,注意1的代码,需要保证触发绑定逻辑的时候view已经创建完成了。
class AppActivityLifecycleCallbacks : Application.ActivityLifecycleCallbacks {
private val pointEventHelper = ClickEventHelper()
override fun onActivityCreated(p0: Activity, p1: Bundle?) {
val lifecycleScope = ((p0 as? LifecycleOwner)?.lifecycleScope) ?: return
lifecycleScope.launchWhenCreated {
pointEventHelper.bindAccessibilityDelegateToViews(p0)
}
(p0 as? FragmentActivity)?.supportFragmentManager?.registerFragmentLifecycleCallbacks(object :
FragmentManager.FragmentLifecycleCallbacks() {
override fun onFragmentCreated(
fm: FragmentManager,
f: Fragment,
savedInstanceState: Bundle?
) {
super.onFragmentCreated(fm, f, savedInstanceState)
f.lifecycleScope.launchWhenResumed {//1
pointEventHelper.bindAccessibilityDelegateToViews(f)
}
}
}, true)
}