我目前在我的应用程序中使用 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 中是最终的,所以我认为它不能被覆盖。
我应该如何处理轮换,以便新 session 不会扰乱服务器发送的数据?
此外,作为旁注,在将 ga_debug 参数设置为 true 的情况下调用 trackStartActivity(Context) 是否应该有 logcat 输出?
提前致谢:)
最佳答案
我找到的最佳解决方案是在 onSaveInstanceState 中添加一个 bool 标志,这样 session Activity 计数器就不会递增。考虑到所有事情都出奇地简单:)
关于android - 将 EasyTracker 与 FragmentActivity 和 ActionBarSherlock 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12925078/