概述
iOS的机制是一旦程序处于后台,那么程序就处于暂停状态,这也是iOS系统后台开很多应用依旧流畅的原因,因为这个机制,所以类似闹钟这样的应用就不能用定时器实现
那么我们要怎样实现定时提醒的功能呢
iOS的通知是系统级的 ,也就是说就算我们的软件关闭了,他依然能通知我们,但是他只能做到定时通知,所以没办法实现定时任务,所以基本上iOS上实现(不能全自动)定时任务的流程都是
注册通知 –> 添加通知 –> 通知栏显示通知 –> 点击通知进入软件 –> 处理通知
下面就用实际代码实现这个功能
示例
注册通知
只有APP注册了通知,那么添加的本地通知才能被接受到
1 | //注册通知 |
添加本地通知
1 | /** |
代码中通知的重复周期为NSCalendarUnit.Day
,所以每天都会通知,要想一天通知4次的话,只能注册四个通知,并设置重复周期为NSCalendarUnit.Day
删除原有的通知
1 | /** |
清空本应用所有消息
1 | /** |
清空本应用通知栏的所有消息
1 | /** |
接受本地推送的代理方法
该方法会在两种情况下运行
- app处于激活状态 接受本地通知时调用
- app处于关闭或未激活状态,接受本地通知时不调用,点击消息后进入app后调用
代码
1 | func application(application: UIApplication, didReceiveLocalNotification notification: UILocalNotification) { |