1

我目前在我的应用程序中使用 ActionBarSherlock,我正在寻找实现 Google 的 EasyTracker 进行分析。

我已经看到 TrackedActivity 只是在生命周期的不同部分调用几个函数(getTracker()、trackStartActivity(Context)、trackActivityStop(Context) 和 trackActivityRetainNonConfigurationInstance())。

由于我已经将 SherlockFragmentActivity 扩展为我的基类,因此我需要将这些调用包含在它们各自的生命周期部分中。我遇到的一个问题是以下电话:

@Override
public Object onRetainNonConfigurationInstance() 
{
     Object o = super.onRetainNonConfigurationInstance();

     // This call is needed to ensure that configuration changes (like
     // orientation) don't result in new sessions.  Remove this line if you want
     // configuration changes to for a new session in Google Analytics.
     EasyTracker.getTracker().trackActivityRetainNonConfigurationInstance();
     return o;
}

问题是这个调用在 FragmentActivity 中是最终的,所以我认为它不能被覆盖。

我应该如何处理轮换,以便新会话不会扰乱服务器发送的数据?

另外,作为旁注,在 ga_debug 参数设置为 true 的情况下调用 trackStartActivity(Context) 是否应该有 logcat 输出?

提前致谢 :)

4

1 回答 1

1

我发现的最佳解决方案是在 onSaveInstanceState 中添加一个布尔标志,这样会话活动计数器就不会增加。考虑到所有事情都非常简单:)

于 2012-10-18T00:08:11.287 回答