系统事件采集功能

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想要知道此次启动事件是否来源于通知打开的方式。
    1. //根据Activity的启动Intent中的数据来自定义启动方式,仅供参考
    2. TAController.setApplicationEventListener(new ApplicationEventListener() {
    3. @Override
    4. public TaAppEvent onEvent(Activity activity, TRSAppEvent event) {
    5. Intent intent = activity.getIntent();
    6. if(intent.getBooleanExtra("isFromNotification", false)) {
    7. event.setOpenFrom(AppLaunchMode.FROM_NOTIFICATION);
    8. returnevent;
    9. }
    10. return event;
    11. }
    12. });
    自定义APP启动方式更为简便的方法:可以直接在Activity的启动Intent中添加自定义的TRSLaunchMode对象,SDK内部会将接下来的启动事件的启动方式更改为用户传入的TRSLaunchMode对象所代表的启动方式。
    1. Intent intentLaunch = new Intent(this, MainActivity.class);
    2. intentLaunch.putExtra(TRSLaunchMode.class.getSimpleName(), TRSLaunchMode.FROM_NOTIFICATION);
    3. startActivity(intent);