我目前正在我的应用中使用ActionBarSherlock,我正在寻求实施Google的EasyTracker进行分析。
我已经看到TrackedActivity只是在生命周期的不同部分调用sevaral函数(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中是最终的,所以我认为它不能被覆盖。
我应该如何处理轮换,以便新会话不会扰乱服务器发送的数据?
另外,作为附注,是否应该通过调用trackStartActivity(Context)来设置logcat输出,并将ga_debug参数设置为true?
提前感谢:)
答案 0 :(得分:1)
我发现的最佳解决方案是在onSaveInstanceState中添加一个布尔标志,以便会话活动计数器不会递增。令人惊讶的简单考虑所有事情:)