iOS学习笔记11—本地通知UILocalNotification
本地通知,用于基于时间行为的通知。 操作系统负责提供在适当的时候分发本地通知给应用程序(注意通知不是由应用来分发),应用程序无需处于运行状态。与远程消息推送类似,本地通知也能够显示警告,发出声音,改变应用图标上的小数字。
本地通知主要用于基于定时器的行为、简单的日历、待办事项列表等应用场景。在允许的时间内在后台运行的应用也可以处理本地通知,如定期或即时通知用户传入的邮件,聊天,或更新等。
对本地通知的数量限制,iOS最多允许最近本地通知数量是64个,超过限制的话,将只保留最近的64个,其余本地通知将被丢弃。
本地通知可以包括自定义的数据存储在一个字典。由于的UILocalNotification采用NSCopying协议,可以复制现有的本地通知,并对其进行修改。
一个简单的使用例子:
- (void)addNotification
{
UILocalNotification * notification=[[UILocalNotification alloc] init];
notification.fireDate=[NSDate dateWithTimeIntervalSinceNow:2];
notification.timeZone=[NSTimeZone defaultTimeZone];
notification.alertBody=@"Hello, world!";
notification.applicationIconBadgeNumber=1;
notification.repeatInterval=kCFCalendarUnitMinute;
[[UIApplication sharedApplication] scheduleLocalNotification:notification];
}
- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification
{
if (notification) {
NSLog(@"didReceiveLocalNotification");
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:nil message:@"received notification1" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];
[alert show];
[alert release];
}
}
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
[self addNotification];
self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
// Override point for customization after application launch.
self.viewController = [[[ViewController alloc] initWithNibName:@"ViewController" bundle:nil] autorelease];
self.window.rootViewController = self.viewController;
[self.window makeKeyAndVisible];
return YES;
}