В настоящее время я работаю над приложением Android с функцией воспроизведения звука. В play_pause Activity у меня есть кнопка поиска и кнопка для управления аудио.Android MediaPlayer, SeekBar Исключение при изменении активности
public class PlayerActivity extend AppCompatActivity {
...
...
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
playerButton = (Button) findViewById(R.id.playButton);
playerButton.setOnClickListener(new Button.setOnClickListener() {
if (player != null) {
//load music to player
player.create(PlayerActivity.this, R.raw.music);
seekbar.setMax(player.getDuration());
mTimer = new Timer();
mTimerTask = new TimerTask() {
public void run() {
seekbar.setProgress(player.getCurrentPosition());;
}
};
mTimer.schedule(mTimerTask, 0, 10);
}
});
}
}
Когда я нажимаю кнопку «Назад», не нажав кнопку «играть», мое приложение может успешно сменить действие. Однако, как только нажата кнопка «играть», я не могу изменить активность. Ниже приведен метод onDestroy().
protected void onDestroy() {
super.onDestroy();
player.release();
}
Logcat имеет сообщение об ошибке о том,
java.lang.IllegalStateException
at MediaPlayer.getCurrentPosition()
at PlayerActivity.run() //which is the mTimerTask
at java.util.Timer$TimerImpl.run()
Кто-нибудь есть идеи, как решить?
остановить задачу таймера в onDestroy –