3

我正在PARTIAL_WAKE_LOCK为我的MediaPlayer实例设置一个:

mMediaPlayer.setWakeMode(getApplicationContext(), PowerManager.PARTIAL_WAKE_LOCK);

我怎样才能释放它?它完成了MediaPlayer.release()吗(我在文档中看不到任何相关内容)?

4

1 回答 1

4

它于MediaPlayer.release()MediaPlayer.stop()和发布MediaPlayer.reset()。它也已发布onCompletiononError.

浏览这里的源代码MediaPlayer

http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/4.2.2_r1/android/media/MediaPlayer.java#MediaPlayer

看起来MediaPlayer.stayAwake()是负责任的,这将释放唤醒锁。

private void stayAwake(boolean awake) {
    if (mWakeLock != null) {
        if (awake && !mWakeLock.isHeld()) {
            mWakeLock.acquire();
        } else if (!awake && mWakeLock.isHeld()) {
            mWakeLock.release();
        }
    }
    mStayAwake = awake;
    updateSurfaceScreenOn();
}

这是一个私有方法,但它在各种状态下被调用,例如 inrelease() stayAwake(false)被调用。

只需搜索一下mWakeLockstayAwake(false)您就会看到。我还检查了 1.5,它是一样的。

于 2013-06-30T05:56:11.160 回答