iOS實現本地通知
本地通知,local notification,用於基於時間行為的通知,比如有關日歷或者todo列表的小應用。另外,應用如果在後台執行,iOS允許它在受限的時間內運行,它也會發現本地通知有用。比如,一個應用,在後台運行,向應用的服務器端獲取消息,當消息到達時,比如下載更新版本的提示消息,通過本地通知機制通知用戶。
本地通知是UILocalNotification的實例,主要有三類屬性:
scheduled time,時間周期,用來指定iOS系統發送通知的日期和時間;
notification type,通知類型,包括警告信息、動作按鈕的標題、應用圖標上的badge(數字標記)和播放的聲音;
自定義數據,本地通知可以包含一個dictionary類型的本地數據。
對本地通知的數量限制,iOS最多允許最近本地通知數量是64個,超過限制的本地通知將被iOS忽略。
如果就寫個簡單的定時提醒,是很簡單的,比如這樣:
UILocalNotification *localNotif = [[UILocalNotification alloc] init];
if (localNotif == nil)
return;
//localNotif.fireDate = itemDate;
//NSDate * now = [NSDate new];
NSDate * date1 = [NSDate dateWithTimeInterval:8 sinceDate:date];
localNotif.fireDate = date1;
NSLog(@"now = %@",date1);
localNotif.timeZone = [NSTimeZone defaultTimeZone];
// Notification details
localNotif.alertBody = @"吃飯時間到了,通知提醒 。。。。。。。。";
// Set the action button
localNotif.alertAction = @"View";
localNotif.soundName = UILocalNotificationDefaultSoundName;
localNotif.applicationIconBadgeNumber = 1;
// Specify custom data for the notification
NSDictionary *infoDict = [NSDictionary dictionaryWithObject:@"someValue" forKey:@"someKey"];
localNotif.userInfo = infoDict;
// Schedule the notification
[[UIApplication sharedApplication] scheduleLocalNotification:localNotif];
[localNotif release];
// NSArray * array = [[UIApplication sharedApplication] scheduledLocalNotifications];
// [[UIApplication sharedApplication] cancelAllLocalNotifications];
// [[UIApplication sharedApplication] cancelLocalNotification:localNotif];