收到当地通知后作出反应

时间:2015-05-13 09:54:04

标签: ios8 uilocalnotification

我正在安排本地通知,并希望对收到该通知作出回应;当应用程序在前台时,它通过application:didReceiveLocalNotification:按预期工作,但当应用程序在后台或关闭时我无法使其工作 - 即使应用程序在后台,该方法是从未打过电话,handleActionWithIdentifier:forLocalNotification:也没有。

如何确保在特定时间执行某项操作?

即使用户没有点击通知,我也想对本地通知做出反应,所以在收到本地通知时自动执行操作。

1 个答案:

答案 0 :(得分:0)

通常会在两种情况下收到通知。

案例-1 :在application:didFinishLaunchingWithOptions:方法中,如果应用既未运行也未在后台运行

 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
        UILocalNotification *localNotif = [launchOptions objectForKey:UIApplicationLaunchOptionsLocalNotificationKey];  
        if (localNotif) {       
            // handle here
        }
}

案例2 :如果应用正在投放或在后台,则使用application:didReceiveLocalNotification:方法。

- (void)application:(UIApplication *)app didReceiveLocalNotification:(UILocalNotification *)notif
{
    if (app.applicationState == UIApplicationStateInactive )
     {
       NSLog(@"app not running");
     }
     else if(app.applicationState == UIApplicationStateActive )
    {
      NSLog(@"app running");
    }
}
相关问题