Ios UILocalNotification能否用于唤醒后台的任务
我想知道,是否有可能以某种方式“唤醒”后台的任务,快速检查网络上的某些内容。。我认为这可以通过UILocalNotification实现,但是,无论我做了什么尝试,当应用程序位于后台时,我都无法让didReceiveLocalNotification执行任何操作。。启动后,我立即按下Home(主页)按钮关闭应用程序(启动本地通知会延迟10秒)。当应用程序在前台时,这段代码可以完美地工作,就像坐在前台一样 应用程序内代理头文件:Ios UILocalNotification能否用于唤醒后台的任务,ios,background,uilocalnotification,Ios,Background,Uilocalnotification,我想知道,是否有可能以某种方式“唤醒”后台的任务,快速检查网络上的某些内容。。我认为这可以通过UILocalNotification实现,但是,无论我做了什么尝试,当应用程序位于后台时,我都无法让didReceiveLocalNotification执行任何操作。。启动后,我立即按下Home(主页)按钮关闭应用程序(启动本地通知会延迟10秒)。当应用程序在前台时,这段代码可以完美地工作,就像坐在前台一样 应用程序内代理头文件: UILocalNotification *localNotif;
UILocalNotification *localNotif;
为了进行测试,我设置了本地通知,以便在appDelegate启动时快速启动
localNotif = [[UILocalNotification alloc] init];
localNotif.fireDate = [NSDate dateWithTimeIntervalSinceNow:10]; // the date you want the notification to fire.
localNotif.timeZone = [NSTimeZone defaultTimeZone];
[[UIApplication sharedApplication] scheduleLocalNotification:localNotif];
NSLog(@"setup the timer for 10 seconds");
- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification {
UIApplicationState state = [application applicationState];
NSLog(@"getting kicked");
if (state == UIApplicationStateInactive) {
// Application was in the background when notification was delivered.
NSLog(@"INACTIVE..");
} else {
NSLog(@"ACTIVE..");
}
}用户有两个选择:#1)是否希望看到应用程序的通知#2) 如果为你的应用启用了通知,他们是否希望单击你的通知以启动你的应用。如果他们确实在应用程序处于后台时接受通知并打开通知,则调用
application:didReceiveLocalNotification
。为了清楚起见,用户必须接受通知(例如在通知下方滑动滑块)。。。否则什么也不叫
- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification {
NSLog(@"%@", notification);
}
如果您的应用程序已终止应用程序:didFinishLaunchwithOptions:
将被调用-
- (BOOL)application:(UIApplication *)
application didFinishLaunchingWithOptions:
(NSDictionary *)launchOptions {
UILocalNotification *theNotification =
[launchOptions
objectForKey:UIApplicationLaunchOptionsLocalNotificationKey];
NSLog(@"%@", theNotification);
return YES;
}
就我所知,didReceiveLocalNotification仅在有人在本地通知后刷卡后执行,而不是在应用程序处于后台时执行(前提是为应用程序打开了通知)…确切地说。。。这就是通知的局限性。。。它需要一个真正的用户与他们交互。