我有一个MediaPlayer的在正在播放的音频从URL(流)服务运行。截至目前它似乎很好地工作,甚至继续当我把手机在待机播放。
我目前还没有获得一个激活锁定。我的问题是:
是的,这是一个合法的用例为激活锁定,因为我的用户明确希望将音频继续播放。
MediaPlayer的不为你自动默认情况下做到这一点。
然而,而不是你不必获得唤醒锁,它拥有你可以打电话告诉它持有一个给你,而玩的方法:
需要注意的是,由于文件说,它仍然是你的应用程序保持唤醒锁,以便使用该功能,您将需要请求之后锁定许可。
编辑:如果你想在安全的地方玩耍,那么你需要使用激活锁定。这样,如果MediaPlayer的发生了改变,并且被允许去的时候,手机暂停你的程序仍能正常工作睡觉。真的有什么通过将激活锁定为您提供您corretly释放时不再需要它丢失。如果你不这样做,你会简单地漏比你打算和,在最坏的情况下更多的电池,你会马上看到这表明你当你的应用程序终止并未解除锁定的错误。添加唤醒锁定 - 而潜在的冗余 - 是一个很好的做法,因为它使你的应用程序了反对修改它取决于软件更加健壮。
你可能会需要一个唤醒锁定,因为你不能保证在电源管理器不会踢,播放时睡觉。该PARTIAL_WAKE_LOCK将确保电池消耗的最低级别,采用(CPU上;屏幕/键盘关闭)。你随时可以测试电池消耗的影响,但我怀疑这将是大的,因为CPU必须是无论如何,以播放音乐。这种方法将确保无论使用什么手机(或设置表示电话),播放将不会从CPU临睡前进行切割。
我不认为你需要为这个激活锁定。当第一次开始接触的MediaPlayer,我飞快的,它只是不会在待机闭嘴发现。我花了工作的一点点只是为了克服这一点,但我从来没有见过,其中待机导致流MediaPlayer对象死亡的情况。
mediaPlayer.setScreenOnWhilePlaying(true);
文档说:“这是在‘setWakeMode’的首选方法,其中可能的,因为它不需要应用程序对低级别的唤醒锁访问权限。”
你并不需要唤醒锁。如果你使用WAKE LOCK,你会强迫用户保持他们的屏幕上,我个人更喜欢关闭屏幕同时播放的媒体。
长时间运行的服务hereexample的实施例