Flurry会为Android平衡开始/结束会话通话吗?

时间:2014-04-21 21:54:16

标签: android session analytics flurry

每个Activity都会调用onSessionStart(context, apikey);onSessionEnd(context);,这样可以在整个活动中跟踪会话。甚至片段也可以这样做,但是当涉及到服务时(并且您认为在服务正在执行时会话未结束),在以下场景中会发生什么:

  1. 活动onStart() - >乱舞开始(活动背景)
  2. Service onCreate - > Service.SomeActionIsHappening() - >乱舞开始(服务背景)
  3. 活动onStop() - >乱舞停止(活动背景)
  4. 服务仍在运行 - >调用Service.SomeOtherAction() - >乱舞开始(服务背景)
  5. 服务结束 - >乱舞停止(服务上下文)。
  6. 所以余额已经(无序):

    1. 活动开始。
    2. 活动结束。
    3. 这很好。活动开始/结束计数平衡为0。

      1. 服务开始。
      2. 服务开始。
      3. 服务结束。
      4. 现在,您是否需要第四次拨打结束以平衡通话? (请记住,上下文是相同的,服务调用启动两次,但它的调用结束一次)。

        或者,只要来自同一上下文的最后一次调用是onEndSession,Flurry就可以接收N次启动和一次(或多次)结束吗?

        Flurry是否保留引用计数(很像Cocoa)或只是上下文列表?

        我还没有看到有关此特定情况的文档。所有文件都说明了这一点:(强调我的)

          

        确保为每次调用onStartSession 匹配对onEndSession 的调用,并传入用于调用onStartSession的相同Context对象。   注意:只要有任何上下文调用onStartSession而不是onEndSession,会话就会继续。如果新的Context在最后一次调用onEndSession的Context的10秒内调用onStartSession,则会恢复会话,而不是创建新的会话。这可确保当用户在您的应用中从一个Activity转换到另一个Activity时,他们将不会为每个Activity跟踪单独的会话,但会有一个跨越许多活动的会话。

        但是,如果相同的上下文调用启动10次,则不清楚会发生什么......

2 个答案:

答案 0 :(得分:3)

@ 323go基于马丁的要求(并回答他自己)并不是文件的完整程度,而是我们应该如何将Flurry用于服务(保持或不保持开始/停止平衡),到期服务没有像Activies / Fragment那样的生命周期。

答案 1 :(得分:1)

根据我的经验,是的,它会平衡通话。 最近我错误地将Flurry会话绑定到Accessibility Service OnCreate / OnDestroy并且会话从未完成,导致没有发送任何分析(如果用户启用,辅助服务将永远运行)