系统事件采集功能
TA2继续沿用1.x的无嵌码系统事件采集的方式,SDK在完成初始化工作之后,就自动开始监测和采集APP的系统事件。
TA2的系统事件采集类型和监测标准也与1.5.5之后的版本没有区别。
SDK采集的APP的系统事件包含3种:
- APP启动
- APP挂起
- APP恢复
其中,APP启动事件判断标准为:
- APP完全退出后再启动。 注意:这里的启动是指APP有可见页面(Activity)显示在屏幕上,才算启动,仅有后台运行不计入启动次数。
- APP进入挂起状态超过30s后恢复到前台,也算一次启动。
APP完全退出后,推送SDK都有相互拉起功能,虽然手机中存在APP的进程,但是并没有一个可见的画面显示,此情况SDK是不会算做启动。
APP挂起事件判断标准为:
- APP启动后,有用户可见变为不可见,比如Home键进入后台,锁屏,黑屏,被其他APP覆盖等。
APP恢复事件判断标准为:
- APP进入挂起状态30s的时间内恢复至前台用户可见。
监听系统事件
在某些情况下,APP希望系统数据的事件更加准确,即希望重写系统事件的某些字段值,APP可以通过调用setApplicationEventListener(ApplicationEventListener)
方法来注册一个系统事件的监听接口,一旦SDK收集到APP的系统事件,就会触发onEvent(Activity, TRSAppEvent)
方法,APP可以TAEventInfo的某些字段值来达到目的。
常见的情形就是APP想要知道此次启动事件是否来源于通知打开的方式。
自定义APP启动方式更为简便的方法:可以直接在Activity的启动//根据Activity的启动Intent中的数据来自定义启动方式,仅供参考
TAController.setApplicationEventListener(new ApplicationEventListener() {
@Override
public TaAppEvent onEvent(Activity activity, TRSAppEvent event) {
Intent intent = activity.getIntent();
if(intent.getBooleanExtra("isFromNotification", false)) {
event.setOpenFrom(AppLaunchMode.FROM_NOTIFICATION);
returnevent;
}
return event;
}
});
Intent
中添加自定义的TRSLaunchMode
对象,SDK内部会将接下来的启动事件的启动方式更改为用户传入的TRSLaunchMode
对象所代表的启动方式。Intent intentLaunch = new Intent(this, MainActivity.class);
intentLaunch.putExtra(TRSLaunchMode.class.getSimpleName(), TRSLaunchMode.FROM_NOTIFICATION);
startActivity(intent);