Android的MediaPlayer类有一个很棒的方法可以让你设置一个唤醒锁:
mPlayer.setWakeMode(getApplicationContext(), PowerManager.PARTIAL_WAKE_LOCK);
我的问题是:这个唤醒锁何时发布?当我打电话时它会自动发生吗?
mPlayer.release();
或者我错过了什么?
以下是该方法的官方文档:MediaPlayer.setWakeMode
答案 0 :(得分:2)
我的问题是:这个唤醒锁何时发布?它会发生吗? 我打电话时自动
mPlayer.release();
是的。检查他们的来源,MediaPlayer.java。 release()
调用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();
}
public void release() {
stayAwake(false);
updateSurfaceScreenOn();
mOnPreparedListener = null;
mOnBufferingUpdateListener = null;
mOnCompletionListener = null;
mOnSeekCompleteListener = null;
mOnErrorListener = null;
mOnInfoListener = null;
mOnVideoSizeChangedListener = null;
mOnTimedTextListener = null;
if (mTimeProvider != null) {
mTimeProvider.close();
mTimeProvider = null;
}
mOnSubtitleDataListener = null;
_release();
}
private native void _release();