1

在当前项目中,我使用“帮助器”类进行 API 调用,它不会扩展 Activity。这个助手类是从一个活动中调用的,在这个活动中,Flurry 会话按照建议开始和停止。是否可以直接从这个助手类进行 Flurry 调用?我想说是的,因为 Flurry 会话已经作为当前活动的一部分开始了,但我不确定。

我宁愿在收到 API 调用的结果时立即记录 Flurry 标签,而不是在 Activity 中再次检查结果消息,这样我就不必重复某些逻辑。

这行得通吗?有更好的方法吗?

4

2 回答 2

1

已编辑。见下文。

谢谢乔迪。我最终使用您的建议将 Activity 传递给辅助类构造函数,设置本地活动变量,并创建一个使用活动 var 记录 Flurry 标记的方法。

/**
 * Logs the Flurry tag using the act that was passed into the constructor
 */

// EDITED - DON'T USE THIS ANYMORE

private void logFlurryTag(String s) {

    FlurryAgent.onStartSession(act, "XXXXXXXXXXXXXXXXXXXXX");
    FlurryAgent.logEvent(s);
    FlurryAgent.onEndSession(act);
}

我相信这应该可以正常工作,但我还没等到 Flurry 标签是否已经开始出现。

***5-9-2012** *

根据 spacemanaki 的建议,我决定重新编写逻辑,将 Flurry 事件记录在活动中,而不是辅助类中。这真的不是太多额外的工作,而且我已经验证了这些事件正在被报道。它也比以一种方法开始和停止乱舞会话更安全。

于 2012-05-07T15:49:38.563 回答
0

您的助手类和/或使用的方法需要一个 Activity 参数,因此您可以将此 Activity 发送给 Flurry。IE

活动课:

 Helper helper = new Helper();
 helper.helping_method(this);

助手类:

 public void helping_method (Activity activitat){
      FlurryAgent.onStartSession(activitat, "xxxxxxxxxxxxxxxxxx");
      FlurryAgent.onEvent("HELPING METHOD");

您可以在创建 Helper 并将 Activity var 保存为 Class 变量时执行相同操作,以便在需要时使用它。

于 2012-05-07T07:38:49.980 回答