每个Activity
都会调用onSessionStart(context, apikey);
和onSessionEnd(context);
,这样可以在整个活动中跟踪会话。甚至片段也可以这样做,但是当涉及到服务时(并且您认为在服务正在执行时会话未结束),在以下场景中会发生什么:
所以余额已经(无序):
这很好。活动开始/结束计数平衡为0。
现在,您是否需要第四次拨打结束以平衡通话? (请记住,上下文是相同的,服务调用启动两次,但它的调用结束一次)。
或者,只要来自同一上下文的最后一次调用是onEndSession,Flurry就可以接收N次启动和一次(或多次)结束吗?
Flurry是否保留引用计数(很像Cocoa)或只是上下文列表?
我还没有看到有关此特定情况的文档。所有文件都说明了这一点:(强调我的)
确保为每次调用onStartSession 匹配对onEndSession 的调用,并传入用于调用onStartSession的相同Context对象。 注意:只要有任何上下文调用onStartSession而不是onEndSession,会话就会继续。如果新的Context在最后一次调用onEndSession的Context的10秒内调用onStartSession,则会恢复会话,而不是创建新的会话。这可确保当用户在您的应用中从一个Activity转换到另一个Activity时,他们将不会为每个Activity跟踪单独的会话,但会有一个跨越许多活动的会话。
但是,如果相同的上下文调用启动10次,则不清楚会发生什么......
答案 0 :(得分:3)
@ 323go基于马丁的要求(并回答他自己)并不是文件的完整程度,而是我们应该如何将Flurry用于服务(保持或不保持开始/停止平衡),到期服务没有像Activies / Fragment那样的生命周期。
答案 1 :(得分:1)
根据我的经验,是的,它会平衡通话。 最近我错误地将Flurry会话绑定到Accessibility Service OnCreate / OnDestroy并且会话从未完成,导致没有发送任何分析(如果用户启用,辅助服务将永远运行)