MediaPlayer and threading cleanup before onBackPressed
I have a mediaplayer in my activity and with the mediaplayer I have a seekbar that I am updating via a thread handler. The way I run the thread handler is like so:
Runnable run = new Runnable() {
@Override
public void run() {
seekUpdation();
}
};
public void seekUpdation() {
if(mp.isPlaying()){
this.seekbar.setProgress(mp.getCurrentPosition());
this.seekHandler.postDelayed(run, 2);
}
}
I call this whenever the user hits the play button and then the seekbar keeps getting updated while the mediaplayer is in playing. SO this works great, but when I hit the Back button when the mediaplayer is playing I then get an illegalstateexception because I am doing the following: @Override public void onBackPressed(){
super.onBackPressed();
if (mr != null)
mr.release();
if (mp != null){
mp.pause();
mp.stop();
mp.release();
}
}
See I figured by pausing the mediaplayer this would trigger the thread to stop, but it hasn't worked. Does anyone have any other suggestions?
链接地址: http://www.djcxy.com/p/88598.html