《Android全埋点解决方案》 —2.2原理概述
2.2原理概述
实现Activity的页面浏览事件,大家首先想到的是定义一个BaseActivity,然后让其他Activity继承这个 BaseActivity。这种方法理论上是可行的,但不是最优选择,有些特殊的场景是无法适应的。比如,你在应用程序里集成了一个第三方的库(比如 IM 相关的),而这个库里恰巧也包含 Activity,此时你是无法让这个第三方的库也去继承你的 BaseActivity(最起码驱使第三方服务商去做这件事的难度比较大)。所以,为了实现全埋点中的页面浏览事件,最优的方案还是基于我们上面讲的 Application.ActivityLifecycleCallbacks。
不过,使用Application.ActivityLifecycleCallbacks机制实现全埋点的页面浏览事件,也有一个明显的缺点,就是注册Application.ActivityLifecycleCallbacks 回调要求 API 14+。
在应用程序自定义的 Application类的 onCreate()方法中初始化埋点 SDK,并传入当前的Application 对象。埋点SDK 拿到 Application 对象之后,通过调用 Application的registerActivityLifecycleCallback(ActivityLifecycleCallbacks callback)方法注册Application.ActivityLifecycleCallbacks回调。这样埋点 SDK 就能对当前应用程序中所有的 Activity 的生命周期事件进行集中处理(监控)了。在注册的 Application.ActivityLifecycleCallbacks 的onActivityResumed(Activity activity)回调方法中,我们可以拿到当前正在显示的 Activity对象,然后调用 SDK 的相关接口触发页面浏览事件($AppViewScreen)即可。
- 点赞
- 收藏
- 关注作者
评论(0)