我正在安排本地通知,并希望对收到该通知作出回应;当应用程序在前台时,它通过application:didReceiveLocalNotification:
按预期工作,但当应用程序在后台或关闭时我无法使其工作 - 即使应用程序在后台,该方法是从未打过电话,handleActionWithIdentifier:forLocalNotification:
也没有。
如何确保在特定时间执行某项操作?
即使用户没有点击通知,我也想对本地通知做出反应,所以在收到本地通知时自动执行操作。
答案 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");
}
}