Ios 由于进入了监控区域,在应用程序启动后使用Flurry录制事件
情况如下。我有一个iOS应用程序,它使用CLLocationManager的区域监控功能在输入预定义的地理区域时通知应用程序。通过区域监控的工作方式,应用程序可以在用户进入某个区域时收到通知,即使应用程序之前已终止。基本上,当输入区域时,操作系统将启动应用程序(不将其带到前台),并使应用程序有机会响应输入的区域 我试图做的是在输入区域时使用Flurry记录事件。目前,它似乎不起作用,因为即使在几天后,这些事件也不会仓促出现。我应该注意到,我已经测试了Ios 由于进入了监控区域,在应用程序启动后使用Flurry录制事件,ios,flurry,Ios,Flurry,情况如下。我有一个iOS应用程序,它使用CLLocationManager的区域监控功能在输入预定义的地理区域时通知应用程序。通过区域监控的工作方式,应用程序可以在用户进入某个区域时收到通知,即使应用程序之前已终止。基本上,当输入区域时,操作系统将启动应用程序(不将其带到前台),并使应用程序有机会响应输入的区域 我试图做的是在输入区域时使用Flurry记录事件。目前,它似乎不起作用,因为即使在几天后,这些事件也不会仓促出现。我应该注意到,我已经测试了I)当用户正常启动应用程序时,Flurry事件
I)
当用户正常启动应用程序时,Flurry事件日志正常运行,以及ii)
我的应用程序确实接收到区域输入和退出的事件(每次输入或退出区域时,我都使用本地通知)
我的怀疑是,这与应用程序委托生命周期有关,不同的是,当应用程序因进入某个区域而启动时,与当用户启动应用程序时,应用程序启动时不同。我的第一个怀疑是,当应用程序在后台启动时,没有调用应用程序:didfishlaunchingwithoptions:
。因为我对[Flurry startSession:@“my_key”]
的调用位于应用程序:didFinishLaunchingWithOptions:
方法中,这就解释了问题。然而,苹果的文档表明,application:didfishlaunchwithoptions:
实际上被称为:
如果您开始监视某个区域,并且随后启动了应用程序
终止后,系统会自动将其重新启动到后台
如果跨过区域边界。在这种情况下,选项
传递给应用程序的字典:didFinishLaunchingWithOptions:
应用程序委托的方法包含密钥
UIApplicationLaunchActionSlocationKey,指示您的
应用程序因与位置相关的事件而启动
虽然我使用的是startMonitoringForRegion:
而不是startMonitoringForRegion:desiredAccuracy:
(已弃用),但我假设这两个调用应用程序:didfishLaunchingwithoptions:
。然后,我阅读了Flurry文档中关于开始会话的注释:
(我的重点):
此方法作为Flurry Analytics集合的入口点。
必须在ApplicationIDFinishLaunching的范围内调用它。这个
会话将在应用程序处于前台期间继续
直到您的应用程序在中指定的时间内后台运行
setSessionContinueSeconds:。如果应用程序在此期间恢复,则
会话将继续,否则将开始新会话。
注:
如果在模拟器上测试,请确保通过主页按钮将应用程序发送到后台。Flurry取决于完整报告的iOS生命周期。
因此,我的怀疑是,即使我在一台真正的设备上进行测试,该应用程序永远不会被“发送到后台”,因为当它启动时,它从一开始就不会进入前台。有谁能澄清这是我记录的事件从未出现的原因,还是可能有其他原因?还有,有解决办法吗?所以我联系了Flurry支持部门,我听到的是: 因此,目前无法在应用程序处于后台时记录/记录事件 我们的工程团队正在研究一个解决方案,这个解决方案可能会在几个月后在SDK的未来版本中提供 所以我想我们等着瞧吧