2013-07-14 3 views
0

В mainactivity я должен создать обработчик в качестве переменной экземпляра:SeekBar обработчик Null Исключение

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

Тогда у меня есть следующие два метода в MainActivity для обновления SeekBar как аудио играет в медиаплеере:

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

Проблема, с которой я столкнулся, заключается в том, что при запуске звука пользователь закрывает приложение, используя заднюю кнопку управления. Я получаю исключение NullPointerException. Разрушающий способ деятельности:

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

ответ

1

Удалите любые сообщения в очереди или обратные вызовы от обработчика в вашем onDestroy. Моя ставка заключается в том, что вызывается последнее сообщение после onDestroy.

+0

API - поискHandler.removeCallbacksAndMessages (null); – Sandeep

Смежные вопросы