2015-08-20 4 views
2

класс MediaPlayer Android, имеет отличный метод, который позволяет установить wakelock:Если я использую метод setWakeMode для MediaPlayer, он будет выпущен автоматически, и если да, то когда?

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

Мой вопрос: когда это wakelock выпустили? Это происходит автоматически, когда я звоню

mPlayer.release(); 

или я что-то упускаю?

Вот официальные документы для метода: MediaPlayer.setWakeMode

ответ

2

Мой вопрос: когда это wakelock выпустили? Случается ли это автоматически, когда я звоню?

mPlayer.release();

Да, это так. Проверка их источника, MediaPlayer.java. release() вызывает stayAwake(), который указывает, следует ли удерживать/освобождать wakelock.

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(); 
Смежные вопросы