2013-07-14 3 views
0

: 다음SeekBar를 핸들러 널 예외

SeekBar seek_bar; 
MediaPlayer player; 
Handler seekHandler = new Handler(); 

I 미디어 플레이어의 오디오 재생과 SeekBar를 업데이트 할 수있는 MainActivity에서 다음 두 가지 방법이 있습니다

public void getInit() { 
    seek_bar = (SeekBar) findViewById(R.id.seek_bar); 
} 

Runnable run = new Runnable() { 

    @Override 
    public void run() { 
     seekUpdation(); **//Exception comes here while closing the app** 
    } 
}; 

public void seekUpdation() { 

    seek_bar.setProgress(mMediaPlayer.getCurrentPosition()); 
    seekHandler.postDelayed(run, 1000); 
} 

내가 직면하고 문제는 오디오가 실행 및 사용자 때하는 buttton를 장치를 다시 사용하여 응용 프로그램을 종료한다는 것입니다. NullPointerException이 발생합니다. 활동의 파기 방법은 다음과 같습니다

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

답변

1

어떤이들의 OnDestroy에서 핸들러에서 메시지/콜백을 대기 제거합니다. 내 단점은 onDestroy 이후 마지막 메시지가 실행된다는 것입니다.

+0

API는 seekHandler.removeCallbacksAndMessages (널)이다; – Sandeep