Android 埋点之点击事件上报-优化

224 阅读1分钟

# 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)
    }