关闭

关于友盟推送

205人阅读 评论(0) 收藏 举报
分类:
  • session的统计

    在每个Activity的onResume方法中调用 MobclickAgent.onResume(Context), onPause方法中调用MobclickAgent.onPause(Context)

  • 正确集成如下代码,才能够保证获取正确的新增用户、活跃用户、启动次数、使用时长等基本数据。

  • public void onResume() {
    super.onResume();
    MobclickAgent.onResume(this);
    }
    public void onPause() {
    super.onPause();
    MobclickAgent.onPause(this);
    }
    

    页面的统计


  • 2.4.1  只由Activity构成的应用

    如果您已经完成2.3步骤之前的代码添加,那么SDK已默认统计了每个Activity的跳转路径。页面统计不需要再添加其他代码。

    2.4.2  包含Activity、Fragment或View的应用

    统计程序中包含Fragment的情况比较复杂,首先要明确一些概念。

    1. MobclickAgent.onResume() 和MobclickAgent.onPause() 方法是用来统计应用时长的(也就是Session时长,当然还包括一些其他功能)
    2. MobclickAgent.onPageStart() 和 MobclickAgent.onPageEnd() 方法是用来统计页面跳转的

    在仅有Activity的程序中,SDK 自动帮助开发者调用了 2. 中的方法,并把Activity 类名作为页面名称统计。但是在包含fragment的程序中我们希望统计更详细的页面,所以需要自己调用方法做更详细的统计。首先,需要在程序入口处,调用 MobclickAgent.openActivityDurationTrack(false) 禁止默认的页面统计方式,这样将不会再自动统计Activity。

    然后需要做两步集成:
    1. 使用 onResume 和 onPause 方法统计时长, 这和基本统计中的情况一样(针对Activity) 
    2. 使用 onPageStart 和 onPageEnd 方法统计页面(针对页面,页面可能是Activity 也可能是FragmentView)

    对于一些典型应用,比如页面是直接放在Activity里面的,统计代码大约是这样:

    public void onResume() {
        super.onResume();
        MobclickAgent.onPageStart("SplashScreen"); //统计页面(仅有Activity的应用中SDK自动调用,不需要单独写)
        MobclickAgent.onResume(this);          //统计时长
    }
    public void onPause() {
        super.onPause();
        MobclickAgent.onPageEnd("SplashScreen"); // (仅有Activity的应用中SDK自动调用,不需要单独写)保证 onPageEnd 在onPause 之前调用,因为 onPause 中会保存信息 
        MobclickAgent.onPause(this);
    }
    
    

    如果页面是使用FragmentActivity + Fragment实现的,需要在 FragmentActivity 中统计时长:

    public void onResume() {
        super.onResume();
        MobclickAgent.onResume(this);       //统计时长
    }
    public void onPause() {
        super.onPause();
        MobclickAgent.onPause(this);
    }
    
    

    并在其包含的 Fragment 中统计页面:

    public void onResume() {
        super.onResume();
        MobclickAgent.onPageStart("MainScreen"); //统计页面
    }
    public void onPause() {
        super.onPause();
        MobclickAgent.onPageEnd("MainScreen"); 
    }
    
    

    需要注意的是这些方法的调用,需要保证线性不交叉,每个 start 都有一个 end 配对,如下:

    onPageStart ->onPageEnd-> onPageStart -> onPageEnd -> onPageStart ->onPageEnd
    

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:22029次
    • 积分:807
    • 等级:
    • 排名:千里之外
    • 原创:61篇
    • 转载:6篇
    • 译文:0篇
    • 评论:1条
    最新评论