ios - 应用进入后台IOS?

标签 ios objective-c

有一种方法可以在应用程序委托(delegate)的方法“applicationDidEnterBackground”被调用但只是获取应用程序对象时通知对象。

我需要在应用程序进入后台时执行一些操作,但我只能通过“[UIApplication sharedApplication]”访问应用程序对象。

注意:我需要这 3 个方法 applicationWillTerminate、applicationWillEnterForeground、applicationDidEnterBackground,但我无法访问 applicationDelegate 方法。

最佳答案

您可以使用 NSNotificationCenter 通知您的类这些方法正在被调用。 在 init 中注册正确的通知:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(applicationWillTerminateNotification:) name:UIApplicationWillTerminateNotification object:nil];

这将调用一个方法这个方法,你必须在你的类中添加它:

- (void)applicationWillTerminateNotification::(NSNotification *)notifictaion{
}

您要添加的通知是:UIApplicationWillTerminateNotificationUIApplicationWillEnterForegroundNotificationUIApplicationDidEnterBackgroundNotification

不要忘记在您类的dealloc 中注销您的类实例,即使在ARC 中也是如此:

-(void) dealloc {
   [[NSNotificationCenter defaultCenter] removeObserver:self name:UIApplicationWillTerminateNotification object:nil];

}

关于ios - 应用进入后台IOS?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26490010/

相关文章:

objective-c - CTFrame 在边缘丢弃字形

ios - tableview的Datasource数组的值自动变为0

ios - 设置应用程序以使用单个通用推送通知客户端 SSL 证书进行开发和生产

ios - Swift 泛型数组

ios - 从 swift 调用 Objective-C "id"中的 typedef

c++ - 单元测试中的失败默认参数

objective-c - iOS8上UIActivityViewController的 "More"部分下的UIBarButtonItem如何设置颜色?

ios - 如何确定分配给结构变量的 UISlider 的标识

objective-c - 如何配置 RestKit errorMapping 来接受更复杂的响应?

objective-c - 我发现 tableview 无法在 iOS 11 中滚动