question: public void open ( final long [ ] list , final int position ) { launchPlayerActivity = true ; synchronized ( this ) { if ( mShuffleMode == SHUFFLE_AUTO ) { mShuffleMode = SHUFFLE_NORMAL ; } final long oldId = getAudioId ( ) ; final int listlength = list . length ; boolean newlist = true ; if ( mPlayListLen == listlength ) { newlist = false ; for ( int i = 0 ; i < listlength ; i ++ ) { if ( list [ i ] != mPlayList [ i ] ) { newlist = true ; break ; } } } if ( newlist ) { addToPlayList ( list , - 1 ) ; notifyChange ( QUEUE_CHANGED ) ; } if ( position >= 0 ) { mPlayPos = position ; } else { mPlayPos = mShuffler . nextInt ( mPlayListLen ) ; } mHistory . clear ( ) ; openCurrentAndNext ( ) ; if ( oldId != getAudioId ( ) ) { notifyChange ( META_CHANGED ) ; } } }
target:  Opens a list for playback