Я не думаю, что вы освобождаете оригинальный экземпляр MediaPlayer.Таким образом, когда вы покидаете действие и возвращаетесь, onCreate()
вызывается снова, и вы получаете два экземпляра, пока из-за нехватки памяти старое освобождается.
Простое решение - освободить его, когда ваша активностьоставляет на переднем плане, например:
@Override
onPause() {
mp.release();
super.onPause();
}
Однако, если вы хотите, чтобы ваша музыка продолжала воспроизводиться в фоновом режиме, вам нужно переместить ссылку MediaPlayer куда-нибудь за пределы жизненного цикла Activity - возможно, в службу.