mardi 5 juillet 2016

Releasing Media Player while preparing is causing app to freeze

I have two activities a main activity which has Recyclerview and a detailedActivity which is launched every time the user clicks on one of the items of the Recyclerview. The detailedActivity has a mediaplayer component that is being created everytime a detailedActivity is created. Now in the onDestroy method I always free the resources taken by the mediaPlayer by this code:

@Override
 protected void onDestroy() {
    if (mMediaPlayer != null) {
        if (mMediaPlayer.isPlaying()) {
            mMediaPlayer.stop();}

        mMediaPlayer.release();
        mMediaPlayer=null;
    }


    super.onDestroy();
}

The app freezes for a while every time I click the back button while the mediaplayer is still preparing. The message that I get in the logcat is this:

I/Choreographer: Skipped 112 frames!  The application may be doing too much work on its main thread.

So this freezing only happens if I destroyed the activity while it is preparing but if it is already in the prepared state it won't happen. I use prepreAsync to fetch the media from the internet. Thanks. Any help is highly appreciated. I have been stuck in this problem for days!

Aucun commentaire:

Enregistrer un commentaire