我一直在寻找移动应用程序的一些分析框架,但像往常一样,我永远不会满意,现在我决定推出自己的解决方案。我只会跟踪少量的事情,例如发布/某些点击/会话长度。不像流程那样先进。
我注意到大多数分析使用application:didFinishLaunchingWithOptions
来运行类似startSession
的内容。有道理。
但他们似乎没有跟踪这种方法applicationDidBecomeActive
,我不知道为什么。如果用户启动会话并在10秒内执行某些操作,则会将应用程序最小化几分钟,然后再次打开它。那么它不会记录这个新的会话吗?或者框架内部通常有一些代码来区分这样的事件。
在写完这个问题之后,这似乎是一个愚蠢的问题,因为每个框架都可以(并且可能确实)有不同的解决方案。但是,如果有人处理过这个问题,我会喜欢有关最佳实践(或任何实践)的一些信息。
答案 0 :(得分:1)
按下主页按钮并将应用程序放入多任务菜单(会话仍处于活动状态)
-(void)applicationWillResignActive:(UIApplication*)application
在多任务处理菜单中不活动3分钟后(未重新打开),您可以在此处终止会话
-(void)applicationDidEnterBackground:(UIApplication*)application
重新打开应用时,请使用此方法计算背景播放与重新打开应用的时间之间的差异。如果此时间间隔超过,则说3分钟终止旧会话并创建新会话
-(void)applicationWillEnterForeground:(UIApplication*)application
用户从多任务菜单中删除应用程序终止您的会话
-(void)applicationWillTerminate:(UIApplication*)application