有没有办法在用户明确杀死应用程序时调用函数?

时间:2018-04-03 11:18:43

标签: ios objective-c push-notification mobile-application

我在我的应用程序中实现了firebase推送通知。我正在使用 registerForRemoteNotifications / unregisterForRemoteNotifications 来启用和禁用推送通知。我已经实现了当用户登录并且应用程序处于后台状态时,用户将收到推送通知以及当用户从应用程序推送通知退出时将不会收到的功能(我在注销时调用此功能以禁用推送通知 [[UIApplication sharedApplication] unregisterForRemoteNotifications]; )。 但主要问题是当用户明确终止应用程序时,推送通知仍然启用。 我尝试使用applicationWillTerminate函数,但是当我显式终止/终止应用程序时,它会抛出一条错误“来自调试器的消息因信号9而终止”。我知道只有在应用程序当前在后台运行且未暂停时才会调用applicationWillTerminate函数。有没有办法检查App何时从暂停状态移动到未运行状态? (即,应用程序最小化,然后用户点击主页按钮两次并清除应用程序。)

2 个答案:

答案 0 :(得分:1)

当用户明确杀死应用程序时,无法运行该功能。您可以在App Life Cycle上查看Apple文档 - https://developer.apple.com/library/content/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/TheAppLifeCycle/TheAppLifeCycle.html

答案 1 :(得分:0)

您是否在applicationWillTerminate委托方法

中取消注册通知?
- (void)applicationWillTerminate:(UIApplication *)application;

Apple documentation clearly says this method will work for apps which donot support background mode and you have 5 seconds of time to execute your tasks