当我的iOS应用程序在后台运行时,它可以很好地响应
- (void)application:(UIApplication *)application didReceiveLocalNotification:
(UILocalNotification *)notification
但是当应用程序关闭时,它会崩溃并出现 SIGKILL 错误。
如果在收到通知时关闭了某个方法,该如何在应用中运行该方法?
答案 0 :(得分:5)
当你的应用关闭时,当你收到通知而不是点击通知时- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
方法被调用。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
UILocalNotification *localNotif = [launchOptions objectForKey:UIApplicationLaunchOptionsLocalNotificationKey];
if (localNotif)
{
// code here.
}
答案 1 :(得分:1)
收到本地通知后,您无法在应用中运行方法。通知可以提供警报,图标徽章编号和声音(<30秒)的任意组合。
您可以通过通知或其他方式再次进入前台时运行方法。
当应用在后台时,它会在恢复之前调用applicationWillEnterForeground:
。您可以覆盖此方法以处理通知后所需的任何内容。您可以覆盖applicationDidEnterBackground:
以确定您的应用实际进入后台的时间。
当应用收到通知但位于前台时,会调用方法application:didReceiveLocalNotification:
。当应用程序位于前台时,不会触发警报,图标徽章编号和声音。