0

我正在开发一个有 10 个活动的应用程序。我在我的应用程序中集成了 Google 和 Flurry 分析。对于 GA,我正在维护一个全局跟踪器对象,该对象在启动器活动中启动,并在应用程序关闭时停止。对于 Flurry,我在每个活动的 onCreate 中开始会话,并在每个活动的 onStop 中停止会话。

现在,当我多次使用我的应用程序时,当查看 GA 和 Flurry 配置文件的统计数据时,我发现 GA 显示的访问次数太高,而 Flurry 的访问次数却非常低。

我猜如果会话被应用程序停止,Flurry 不会启动新会话,我们会在 10 秒内重新启动应用程序。这是计数之间存在这种差异的原因还是代码可能有问题。

4

2 回答 2

0

首先,你的应用程序的启动模式是什么?http://developer.android.com/guide/topics/manifest/activity-element.html#lmode

如果您允许多个实例,那么用户可能会在同一会话中多次点击相同的启动器活动,Google 可能会将其视为额外会话。

其次,不保证会调用 onStop()。onPause 实际上是保证发生的最后一个状态:http: //developer.android.com/reference/android/app/Activity.html#ActivityLifecycle这可能与此无关,因为会话计数已完成公开电话,但无论如何都要注意这一点。

一个有趣的测试是在应用程序首次出现时在 Flurry 和 GA 中触发“应用程序启动”事件。然后,您将获得一个比会话模糊得多的数据点,以比较两者并查看哪个报告过多或报告不足。

于 2011-04-27T14:28:23.417 回答
0

将您的 FlurryonStartSession呼叫移至onStart.

onCreate只被调用一次,而每次活动进入前台时,它都会通过onStart. Flurry 以与堆栈类似的方式处理活动。 onStartSession将一个活动放在堆栈上并将onEndSession其弹出。当某个超时后没有剩余时,SDK 有效地结束会话。

通过您的onStartSession调用onCreate,您将获得一个创建每个活动的有效会话,但如果您回到该活动,您的会话将结束。移动onStartSessiononStart解决这个问题。

于 2015-10-20T18:57:50.533 回答