每个活动中的乱舞分析?

时间:2012-09-06 19:37:23

标签: android android-activity flurry

我想在我的Android应用程序中集成flurry分析,看起来非常简单。但我不熟悉乱舞及其运作方式。

我应该添加代码:

public void onStart()
{
super.onStart();
FlurryAgent.onStartSession(sample, “APIXXXXXXXXXXXX”);

}

在每项活动中?

我的应用程序使用了很多活动,我并不真正关心跟踪使用哪些活动,只关注安装次数,会话次数和会话长度。但是,如果仅在启动活动中添加了flurry代码,那么会话长度是否可用?

我知道我想要的大部分信息已经在Play商店中提供,但我想尝试这一点来概述不同平台上的应用程序。

2 个答案:

答案 0 :(得分:16)

这是一个很好的答案:https://stackoverflow.com/a/8062568/1635817

我建议你创建一个“BaseActivity”并告诉你所有活动扩展它,这样你就不必在每个活动类中复制/粘贴这些行。

这样的事情:

public class BaseActivity extends Activity
{
    public void onStart()
    {
       super.onStart();
       FlurryAgent.onStartSession(this, "YOUR_KEY");
       // your code
    }

    public void onStop()
    {
       super.onStop();
       FlurryAgent.onEndSession(this);
       // your code
    }
}

回应@conor评论:

来自Flurry's documentation

  

只要有任何已调用的Context   onStartSession(Context,String)但不是onEndSession(Context),.   会议将继续进行。此外,如果新的上下文调用   onStartSession(Context,String)在10秒内(默认会话   最后一次调用onEndSession的Context,然后是   将恢复会话,而不是创建新会话。   会话长度,使用频率,事件和错误将继续存在   跟踪作为同一会话的一部分。这确保了作为用户   在应用程序中从一个Activity转换到另一个Activity   没有为每个活动跟踪单独的会话,但会有一个   单个会话,涵盖许多活动。

答案 1 :(得分:4)

来自florianmski的回答很有意义,但是当您必须在应用程序中使用不同类型的活动时会出现一些问题,例如FragmentActivity,TabActivity,ListActivity等。在这种情况下,您无法从单个BaseActivity扩展所有活动。我个人更喜欢在每个活动的onStart和onStop方法中调用onStartSession和onEndSession,但在将它们包装到某个类之前,例如:

public class Analytics {
    public static void startSession(Context context) {
        FlurryAgent.onStartSession(context, Config.FLURRY_KEY);
        // here could be some other analytics calls (google analytics, etc)
    }
    public static void stopSession(Context context) {
        FlurryAgent.onEndSession(context);
        // other analytics calls
    }
}

在每项活动中:

public void onStart() {
    super.onStart();
    Analytics.startSession(this);
}

public void onStop() {
    super.onStop()
    Analytics.stopSession(this);
}