我对Android中使用的Timer
和AlarmManager
感到有些困惑。
他们之间的主要区别是什么?
他们都计划每隔A秒运行一次任务。他们更喜欢使用的主要方案是什么?
例如,对于X情境,请使用Timer
但另一方面,对于Y情况,请使用AlarmManager
。
答案 0 :(得分:31)
Timer
将启动一个跟踪何时启动代码的线程。如果设备进入睡眠状态,定时器线程和代码也将无法按时执行。另一方面,AlarmManager
的警报是内核级别的。根据您的注册方式,您可以请求唤醒设备,或在下次唤醒设备时执行。警报通常是优选的并且使用较少的资源。
答案 1 :(得分:0)
计时器启动一个服务,它经常执行代码甚至认为它实际上没有做任何事情。
另一方面,Alarmmanager将启动一个始终在后台运行的服务,这是您在应用程序未打开时安排代码运行的目的。