内容简介:ActivityLifecycleCallbacks 是 Application 的一个内部接口,从 API 14 开始提供的。Application 通过此接口提供了一套回调方法,用于让开发者可以对 Activity 的所有生命周期事件进行集中处理(或者叫监控)。可以通过 application.registerActivityLifecycleCallback 注册 ActivityLifecycleCallbacks。public interface ActivityLifecycleCallbac
$AppViewScreen 事件,即页面浏览事件。 在 Android 系统中,页面浏览,其实就是指切换不同的 Activity。那对于一个 Activity,哪个生命周期执行了代表该页面显示出来了呢?通过对 Activity 的生命周期了解可知,其实就是 onResume 生命周期。
Application.ActivityLifecycle- Callbacks
ActivityLifecycleCallbacks 是 Application 的一个内部接口,从 API 14 开始提供的。Application 通过此接口提供了一套回调方法,用于让开发者可以对 Activity 的所有生命周期事件进行集中处理(或者叫监控)。可以通过 application.registerActivityLifecycleCallback 注册 ActivityLifecycleCallbacks。
Application.ActivityLifecycleCallbacks 接口定义如下:
public interface ActivityLifecycleCallbacks {
void onActivityCreated(Activity activity, Bundle savedInstanceState);
void onActivityStarted(Activity activity);
void onActivityResumed(Activity activity);
void onActivityPaused(Activity activity);
void onActivityStopped(Activity activity);
void onActivitySaveInstanceState(Activity activ- ity, Bundle outState);
} void onActivityDestroyed(Activity activity);
以 onResume(Activity activity) 为 例,如 果 注 册 了 ActivityLifecycleCallbacks,Android 系 统 会 先 回 调 ActivityLifecycleCallbacks 的 onActivityResumed 方 法, 然后再执行 Activity 本身的 onResume 函数 ( 请注意这个 调 用 顺 序 ) 。通 过 registerActivityLifecycleCallback 方 法名中的“register”字样可以知道,一个 Application 是 可 以 register 多 个 ActivityLifecycleCallbacks 的,通 过 registerActivityLifecycleCallback 的内部实现也可以证实这一点。
public void registerActivityLifecycleCallbacks (ActivityLifecycleCallbacks callback) {
{ synchronized (mActivityLifecycleCallbacks) back); mActivityLifecycleCallbacks.add(call- }}
原理概述
在应用程序自定义的 Application 对象的 onCreate() 方法中初始化埋点 SDK, 并传入当前的 Application 对象。SDK 拿到 Application 对象之后,通过 registerActivityLifecycleCallback 方法注册 Application.ActivityLifecycleCall- backs。这样 SDK 就能对 App 中所有的 Activity 的生命周期事件进行集中处理 (监控)了。在注册的 Application.ActivityLifecycleCallbacks 的 onActivityRe- sumed 回调方法中,我们可以拿到当前正在显示的Activity对象,然后调用 SDK 的相关接口触发页面浏览事件即($AppViewScreen)。
实现步骤
完整的项目源码后续会 release 给大家。
缺点
注册 Application.ActivityLifecycleCallbacks 要求 API 14+ 。
知识点
Application.ActivityLifecycleCallbacks
注:该内容来自神策数据用户行为洞察研究院出品的《Android 全埋点解决方案》白皮书,查看完整白皮书可点击 《Android 全埋点解决方案》
更多白皮书、报告、干货和案例,可以关注“神策数据”和“用户行为洞察研究院”公众号了解~
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 事件循环是如何影响页面渲染的?
- vue页面跳转后返回原页面初始位置方法
- Flutter 三种方式实现页面切换后保持原页面状态
- 点击a链接打开第三方页面变成下载页面问题
- 详解JS事件 - 事件模型/事件流/事件代理/事件对象/自定义事件
- 页面遮罩层,并且阻止页面body滚动。bootstrap模态框原理
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
单元测试之道Java版
David Thomas、Andrew Hunt / 陈伟柱、陶文 / 电子工业 / 2005-1 / 25.00元
程序员修炼三部曲丛书包含了四本书,介绍了每个注重实效的程序员和成功团队所必备的一些工具。 注重实效的程序员都会利用反馈来指导开发,并驱动个人的开发流程。编码的时候,最有用的反馈来自于“单元测试”。 为了测试一座桥梁,不会只在晴朗的天气,开一辆汽车从桥中间穿过,就认为已经完成了对桥梁的测试。然而许多程序员却正在使用这种测试方法——把这种一次顺利通过称为“测试”。事实上,注重实效的程序员应......一起来看看 《单元测试之道Java版》 这本书的介绍吧!