项目中用到AlarmManager 定时任务;
官网这样介绍:此类提供对系统警报服务的访问。 这些让你 安排您的应用程序在将来的某个时间运行。 什么时候 警报响起, Intent已经为它注册的 由系统广播,自动启动目标应用程序 如果它还没有运行。 注册的警报将保留,而 设备处于睡眠状态(并且可以选择在设备关闭时唤醒设备 在这段时间内),但如果关闭并重新启动,它将被清除。
警报管理器持有 CPU 唤醒锁,只要警报接收器的 onReceive() 方法正在执行。 这样可以保证手机不会休眠 直到您处理完广播。 一旦 onReceive() 返回, 警报管理器释放此唤醒锁定。 这意味着手机将在某些 一旦您的 onReceive() 方法完成,cases 就会休眠。 如果您的警报接收器 叫 Context.startService(), 它 手机可能会在请求的服务启动之前休眠。 为了防止这种情况,您的 BroadcastReceiver 和 Service 需要实现一个 单独的唤醒锁定策略,以确保手机继续运行,直到 服务变为可用。
注意:警报管理器适用于您想要的情况 您的应用程序代码在特定时间运行,即使您的应用程序 当前未运行。 对于正常的计时操作(滴答、超时、 等)使用起来更容易也更有效 Handler.