Ios 应用程序标识背景和网络请求
我有一个iOS游戏,其中我跟踪玩家在一个会话中的级别数。会话对应于用户按下主屏幕上的应用程序图标和按下主页按钮离开应用程序之间的时间段 令人惊讶的是,我的大部分用户似乎没有得到休假活动。我已经按照如下方式实现了日志传输:Ios 应用程序标识背景和网络请求,ios,asihttprequest,Ios,Asihttprequest,我有一个iOS游戏,其中我跟踪玩家在一个会话中的级别数。会话对应于用户按下主屏幕上的应用程序图标和按下主页按钮离开应用程序之间的时间段 令人惊讶的是,我的大部分用户似乎没有得到休假活动。我已经按照如下方式实现了日志传输: - (void)applicationDidEnterBackground:(UIApplication *)application { ... [[EventLogger sharedEventLogger] pushEvent:LEAVE_GAME]; }
- (void)applicationDidEnterBackground:(UIApplication *)application
{
...
[[EventLogger sharedEventLogger] pushEvent:LEAVE_GAME];
}
…其中EventLogger使用ASITP库发送一个异步HTTP POST请求
可能是系统在传输结束前抢占了传输吗?可能是应用程序崩溃了,永远无法达到这一点,但这是不可能的。您是否阅读了此方法的说明
“您应该使用此方法释放共享资源,保存用户数据,使计时器无效,并存储足够的应用程序状态信息,以便在以后终止时将应用程序恢复到当前状态。您还应该禁用应用程序用户界面的更新,并避免使用某些类型的共享系统资源(例如用户的联系人数据库)…此方法的实现大约有五秒钟的时间来执行任何任务并返回。如果您需要额外的时间来执行任何最终任务,您可以通过调用beginBackgroundTaskWithExpirationHandler:从系统请求额外的执行时间。实际上,您应该从应用程序返回OnDentinterbackground:尽快。如果该方法在时间用完之前没有返回,您的应用程序将被终止并从内存中清除。
在我看来,不建议您使用此方法,但您可以尝试使用此beginBackgroundTaskWithExpirationHandler
我不能确定这是否是对您的问题的解释,但这似乎是合理的,并且符合这样一个事实,即它不是仅为您的一部分用户记录的
也可用于:
按下主页按钮时,系统发送UIApplicationIDGOTOBACKGROUND通知