iOS 应用程序不在后台运行 = YES - 我如何检查用户何时退出应用程序
Posted
技术标签:
【中文标题】iOS 应用程序不在后台运行 = YES - 我如何检查用户何时退出应用程序【英文标题】:iOS Application Does Not Run In Background = YES - how do I check when the user exits app 【发布时间】:2013-02-28 19:03:41 【问题描述】:在我的 info.plist 文件中,我的应用程序不会在后台运行 = 是。这是一个企业应用程序,我正在尝试在用户退出(点击主页按钮)时记录。但是在 AppDelegate 中,我登录到控制台以查看将调用什么方法,但它们都不是(applicationWillResignActive、applicationDidEnterBackground、applicationWillTerminate)。有没有办法确定用户何时使用我拥有的 plist 设置退出>?
谢谢
这里是 willTerminate 方法,开箱即用:
- (void)applicationWillTerminate:(UIApplication *)application
NSLog(@"goodbye");
// Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.
我已更改 plist 设置,现在可以从 applicationDidEnterBackground 登录。
【问题讨论】:
applicationWillTerminate when is it called and when not的可能重复 【参考方案1】:所以您不希望应用程序在后台运行,但您想知道应用程序何时终止?这样做
UIApplication *app = [UIApplication sharedApplication];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(applicationWillTerminate:)
name:UIApplicationWillTerminateNotification
object:app];
然后填写你自己的applicationWillTerminate方法。你不会有太多时间做事。
【讨论】:
不需要这个。应用程序委托已经有它的 applicationWillTerminate 方法,在这种情况下会被调用。【参考方案2】:如果您已将 ApplicationDoesNotRunInBackgound 设置为 YES,那么这必须有效,
将此方法放入您的 appDelegate.m
-(void)applicationWillTerminate:(UIApplication *)application
NSLog(@"user exits app");
在我的应用中,使用相同的 plist 设置,此方法会触发
【讨论】:
willTerminate 在那里,但没有任何记录。 你能把你的 willTerminate 方法贴在这里吗??是在 AppDeleate.m 文件中吗?以上是关于iOS 应用程序不在后台运行 = YES - 我如何检查用户何时退出应用程序的主要内容,如果未能解决你的问题,请参考以下文章
即使应用程序不在后台运行,如何让 iOS 应用程序执行一些代码?
React-Native IOS:Background-Timer 不在后台运行