onBackPressed之前的MediaPlayer和线程清理

时间:2013-11-22 21:10:53

标签: android multithreading android-mediaplayer

我的活动中有一个媒体播放器和媒体播放器我有一个我通过线程处理程序更新的搜索栏。我运行线程处理程序的方式如下:

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

每当用户点击播放按钮,然后搜索栏在媒体播放器正在播放时不断更新,我就会调用它。这样做效果很好,但是当我在播放媒体播放器时点击“返回”按钮时,我会得到非法状态,因为我正在执行以下操作:     @覆盖     public void onBackPressed(){

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

通过暂停媒体播放器,我认为这会触发线程停止,但它没有工作。有没有人有任何其他建议?

0 个答案:

没有答案