在不增加会话数的情况下跟踪 Android 中的后台事件的好方法是啥?

Posted

技术标签:

【中文标题】在不增加会话数的情况下跟踪 Android 中的后台事件的好方法是啥?【英文标题】:What is a good way to track background events in Android without inflating session numbers?在不增加会话数的情况下跟踪 Android 中的后台事件的好方法是什么? 【发布时间】:2012-03-24 06:45:06 【问题描述】:

现在,我使用 Flurry 来满足我所有的应用内分析需求。我开始添加涉及服务和广播接收器的功能。我想跟踪这些组件中的事件,但我不想基于这些被动事件在 Flurry 中启动新会话。据我所知,在 Flurry 中跟踪事件的唯一方法是在会话开始和结束之间跟踪它们。本质上,我想看看使用新功能的人是否会增加我的会话数。

我正在考虑的一个想法是将我的意图中的被动事件参数传递给活动。然后包括那些通常会在该会话中发送到 Flurry 的每个活动事件。

这是一个好方法吗? Flurry 是否有更好的方法,甚至是更好的工具?

更新

我收到了 Flurry 的回复,但不是我希望的回复

我们目前不支持从 android 上的 BroadcastReceiver 中发送事件。必须在会话范围内记录事件,并且会话依赖于上下文。 很抱歉给您带来不便。

【问题讨论】:

【参考方案1】:

我的建议是拥有一个 Service 或 IntentService,您可以使用要发送给 Flurry 的事件数据来调用它们。该服务可以在发送数据之前缓存、汇总、排队并执行您需要的任何操作,并且它不依赖于正在运行的 Activity。

您仍然需要开始一个会话,但您可以只进行一个较长的会话,而不是为每个事件开始一个新的会话。

【讨论】:

以上是关于在不增加会话数的情况下跟踪 Android 中的后台事件的好方法是啥?的主要内容,如果未能解决你的问题,请参考以下文章

在不丢失堆栈跟踪的情况下重新抛出 Java 中的异常

如何在不使用请求的情况下删除 Laravel 5.3 中的会话?

在不使用发射的情况下跟踪父级中的子组件值?

如何在不退出的情况下更新会话值?

如何在不跟踪的情况下只获取一次用户位置?

如何在不向用户显示堆栈跟踪的情况下处理 servlet 过滤器中的错误状态?