其他分享
首页 > 其他分享> > android – Flurry应该在Services和AsyncTasks中使用?

android – Flurry应该在Services和AsyncTasks中使用?

作者:互联网

我正在尝试在我的应用中使用Flurry Analitcs.
在阅读sdk文档后,我在应用程序的每个活动中执行了以下代码:

@Override
protected void onStart() {
    FlurryAgent.onStartSession(this, "xxxxxxxxxxxxxxxxx");
    super.onStart();
}

@Override
public void onStop() {
    super.onStop();
    FlurryAgent.onEndSession(this);
}

我的疑问是我的应用程序中有很多AsyncTask和一些IntentServices,并且在文档中他们说:

Insert a call to FlurryAgent.onStartSession(Context, String), passing it a reference
to a Context object (such as an Activity or Service)

那么,我应该在onHandleIntent方法中调用onStartSession吗?我应该在哪里调用onEndSession?在最后的过程中和最后的块中?
关于AsyncTasks,即使我通过我的任务传递我的活动上下文,我也应该实现它吗?

解决方法:

FlurryAgent作为应用程序中的单例实体存在.无论何时调用onStartSession(),您都会开始一个新会话,并且调用onEndSession()将结束当前活动的会话.这与您调用FlurryAgent的线程无关.

您希望如何在应用程序中定义会话在很大程度上取决于您.对于大多数应用程序,会话定义为用户与应用程序交互的时间段.这就是文档建议在Activity生命周期函数中调用onStartSession()和onEndSession()的原因,以便会话将包含所有用户交互.

如果在显示Activity时正在执行AsyncTask,则不需要再次调用onStartSession(),因为它已经从封闭的Activity中被跟踪.如果您有一个独立于活动运行的后台服务,则由您决定何时调用onStartSession().

请注意,如果您有一个可以无限期运行的服务,则应定期调用onEndSession()以便报告数据,因为数据仅在会话启动和结束时报告.

标签:android,flurry
来源: https://codeday.me/bug/20190625/1284472.html