MediaPlayer和onBackPressed之前的线程清理

我有一个媒体播放器在我的活动和媒体播放器我有一个seekbar,我通过线程处理程序更新。 我运行线程处理程序的方式如下所示:

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);
        }
    }

每当用户点击播放按钮,然后当媒体播放器正在播放时,搜索栏不断更新,我就会调用它。 所以这个效果很好,但是当mediaplayer播放时我点击后退按钮,然后得到一个非法的状态,因为我正在做以下操作:@Override public void onBackPressed(){

    super.onBackPressed();
    if (mr != null)
        mr.release();
    if (mp != null){
        mp.pause();
        mp.stop();
        mp.release();
    }
}

看到我想通过暂停mediaplayer这会触发线程停止,但它没有奏效。 有没有人有任何其他建议?

链接地址: http://www.djcxy.com/p/88597.html

上一篇: MediaPlayer and threading cleanup before onBackPressed

下一篇: Mediaplayer progress update to seekbar not smooth?