我遇到的情况是,我有3个服务执行不同的操作,并且都需要唤醒锁。
在执行结束时,我想释放唤醒锁,但是,我担心给定服务释放其唤醒锁会破坏其他服务的行为。因此,我想象的场景是:
服务A抓住唤醒锁并开始执行操作
服务B抓住唤醒锁并开始做某事
服务A完成并释放唤醒锁
此时服务B会怎样?
因此,我的基本问题是:
a)这是值得担心的事情吗,或者Android是否会在后台自动为我管理此事情(我的假设是没有)?
b)确保在没有完成任何服务的情况下唤醒锁仍然存在的最佳方法是什么,或者获取不会相互破坏的单独唤醒锁的最佳方法是什么?
最佳答案
如果没有完成任何服务,最好的方法是确保唤醒锁仍然存在
在setReferenceCounted(true)
上调用WakeLock
。默认情况下已经设置好了,但是您可以根据需要再次调用它。
关于android - 唤醒锁是静态的吗?如果是的话,如何在一个应用程序中管理多个服务/唤醒锁?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16593084/