Android 前台服务与部分唤醒锁定的关系

Android 前台服务与部分唤醒锁定的关系,android,service,power-management,Android,Service,Power Management,我知道前台服务有“不太可能杀死”的行为。根据Android文档: 从理论上讲,仍然有可能在以下情况下终止服务: 来自当前前台应用程序的极大内存压力,但是 实际上,这不应该引起关注 我认为这解决了大多数情况下内存不足的问题。但是我找不到任何关于在前台服务运行时CPU是否进入睡眠状态的文档 前台服务是否会自动获取部分唤醒锁,或者如果需要,必须显式调用它 有没有办法检查/记录哪些应用程序/服务正在使用部分唤醒锁定 Android前台服务和部分唤醒锁定互不相关 前台服务->它告诉操作系统将您的服务置于最

我知道前台服务有“不太可能杀死”的行为。根据Android文档:

从理论上讲,仍然有可能在以下情况下终止服务: 来自当前前台应用程序的极大内存压力,但是 实际上,这不应该引起关注

我认为这解决了大多数情况下内存不足的问题。但是我找不到任何关于在前台服务运行时CPU是否进入睡眠状态的文档

  • 前台服务是否会自动获取部分唤醒锁,或者如果需要,必须显式调用它

  • 有没有办法检查/记录哪些应用程序/服务正在使用部分唤醒锁定


  • Android前台服务和部分唤醒锁定互不相关

    前台服务->它告诉操作系统将您的服务置于最高优先级队列中。如果操作系统出于任何原因需要内存,它最终会终止您的服务,并以最低优先级的队列开始(我相信有5个优先级队列,前台是最高的)

    部分唤醒锁定->它告诉操作系统,当设备进入睡眠状态时(无论何时),不要让CPU进入睡眠状态

    所以,即使您有一个前台服务,如果设备进入睡眠状态,cpu也可能进入睡眠状态(如果其他应用程序获得了部分唤醒锁定,则可能不会)。 我认为没有办法检查哪些应用程序通过编程获得了唤醒锁,但您可以将设备插入DDMS,当有人获得唤醒锁时,您将看到PowerManager日志

    希望有帮助