iOS-关于如何知道应用被杀死并做相应处理
Posted qzcodediary
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS-关于如何知道应用被杀死并做相应处理相关的知识,希望对你有一定的参考价值。
需求:由于近期项目需求,用户行为不可控,某些用户在执行某些操作之后,强行杀死应用,导致部分统计数据没办法实时上传。所以需要在用户杀死应用的时候,将当前统计的数据上传到服务器(不持久化的数据)。
经过在网上寻找答案,和自己的验证。
在appdelegate中去实现两个api
-(void)applicationDidEnterBackground:(UIApplication *)application { NSLog(@"didenterbackgroud"); [[UIApplication sharedApplication]beginBackgroundTaskWithExpirationHandler:^{ NSLog(@"auto kill app!"); }]; } -(void)applicationWillTerminate:(UIApplication *)application { NSLog(@"kill app !!!!"); }
两个方法配合使用。如果不实现
beginBackgroundTaskWithExpirationHandler
应用先退到后台,再杀应用,则不会调用
applicationWillTerminate
在应用界面的界面唤起直接杀死应用会调用
applicationWillTerminate
如上两个方法和一个block配合使用,则无论应用以什么方式被杀死都会调用
applicationWillTerminate
当应用被用户退到后台,一定时间之后会自动调用
beginBackgroundTaskWithExpirationHandler
以上是关于iOS-关于如何知道应用被杀死并做相应处理的主要内容,如果未能解决你的问题,请参考以下文章
当 iOS 应用程序被暂停/杀死并且用户点击通知时如何处理 Firebase 推送通知?