首先在注册通知
if ([UIApplication instancesRespondToSelector:@selector(registerUserNotificationSettings:)]){
[application registerUserNotificationSettings:[UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeAlert|UIUserNotificationTypeBadge|UIUserNotificationTypeSound categories:nil]];
}
再需要使用通知的地方创建通知
-(void)createLocalNotifaction{
//设置20秒之后
NSDate *date = [NSDate dateWithTimeIntervalSinceNow:0];
/*
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"HH:mm:ss"];
NSDate *now = [formatter dateFromString:@"15:00:00"];//触发通知的时间
*/
UILocalNotification *noti = [[UILocalNotification alloc] init];
if (noti) {
//设置推送时间
noti.fireDate = date;//=now
//设置时区
noti.timeZone = [NSTimeZone defaultTimeZone];
//设置重复间隔
// noti.repeatInterval = NSCalendarUnitMinute;
//推送声音
noti.soundName = @"push01.caf";
//内容
noti.alertBody = @"推送内容";
//显示在icon上的红色圈中的数子
noti.applicationIconBadgeNumber = 1;
//设置userinfo 方便在之后需要撤销的时候使用
NSDictionary *infoDic = [NSDictionary dictionaryWithObject:@"name" forKey:@"key"];
noti.userInfo = infoDic;
//添加推送到uiapplication
UIApplication *app = [UIApplication sharedApplication];
[app scheduleLocalNotification:noti];
}
}
关闭所有通知
-(void)cancelNotify{
//删除全部的通知
[[UIApplication sharedApplication] cancelAllLocalNotifications];
}
关闭指定通知
for (UILocalNotification *noti in [[UIApplication sharedApplication] scheduledLocalNotifications]) {
if([noti.userInfo[@"key"] isEqualToString:@"name"]){
[[UIApplication sharedApplication] cancelLocalNotification:noti];
}
}
倒计时结束播放音乐
-(void)cutDownCount:(NSTimer *)theTimer{
NSString *strSecond;
NSString *strMinute;
if(senconds < 10){
strSecond = [NSString stringWithFormat:@"0%d",(int)senconds];
}else{
strSecond = [NSString stringWithFormat:@"%d",(int)senconds];
}
if(projectTime < 10){
strMinute = [NSString stringWithFormat:@"0%d",(int)projectTime];
}else{
strMinute = [NSString stringWithFormat:@"%d",(int)projectTime];
}
NSString *buttonTitle = [NSString stringWithFormat:@"%@:%@",strMinute,strSecond];
coutTimeLabel.text = buttonTitle;
if(senconds == 0){
if(projectTime == 0 && senconds == 0){
//计时器结束
[theTimer invalidate];
[self showAlertView];
for (UILocalNotification *noti in [[UIApplication sharedApplication] scheduledLocalNotifications]) {
if([noti.userInfo[@"key"] isEqualToString:@"name"]){
[[UIApplication sharedApplication] cancelLocalNotification:noti];
}
}
// movePlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"夜空中最亮的星" ofType:@"mp3"]] error:nil];
//
NSString *tmp=[[NSBundle mainBundle].resourcePath stringByAppendingPathComponent:@"夜空中最亮的星.mp3"];
NSLog(@"%@",tmp);
NSURL *moveMP3=[NSURL fileURLWithPath:[[NSBundle mainBundle].resourcePath stringByAppendingPathComponent:@"夜空中最亮的星.mp3"]];
NSError *err=nil;
movePlayer=[[AVAudioPlayer alloc] initWithContentsOfURL:moveMP3 error:&err];
movePlayer.volume=1.0;
[movePlayer prepareToPlay];
if (err!=nil) {
NSLog(@"move player init error:%@",err);
}else {
[movePlayer play];
}
projectTime --;
senconds = 59;
}
}
senconds--;
}