Android: Mediaplayer проигрывается несколько раз, если я продолжаю нажимать кнопку «Назад» и снова запускаю приложение - PullRequest
0 голосов
/ 23 февраля 2012

Когда я проигрываю свою песню и нажимаю кнопку «Назад», чтобы вернуться домой, музыка продолжает играть.Когда я снова запускаю приложение, музыка играет дважды.Я думаю, что это метод onResume, потому что я закомментировал метод и проблема остановилась.Как мне получить на резюме работу правильно?Я пытался использовать if (backgroundMusic.isplaying ()) внутри onResume, но приложение вылетает, когда я возобновляю работу из другого действия.Что я делаю неправильно?

//global mediaplayer
MediaPlayer backgroundMusic;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);  
    loadBackgroundMusic();

}

private void loadBackgroundMusic() {

    //load mp3 into object and start it
    backgroundMusic = MediaPlayer.create(this,R.raw.backgrounmusic);
    backgroundMusic.setLooping(true);
    backgroundMusic.start();

}
        @Override
        protected void onPause() {
            super.onPause();
            backgroundMusic.release();

        }

        @Override
        protected void onResume() {
            super.onResume();
            loadBackgroundMusic();

        }

        @Override
        protected void onStop() {
            super.onStop();
            backgroundMusic.release();
        }

1 Ответ

1 голос
/ 24 февраля 2012

Я не совсем уверен в том, какое поведение вы хотите.На мой взгляд, это одно из двух:

  1. Музыка должна воспроизводиться только тогда, когда видна моя активность

    Если это так, вам следует посмотреть поближе надокументация для жизненного цикла активности .Например, это скажет вам, что onResume() также будет вызываться при первом создании Activity.

    Таким образом, решение будет состоять в том, чтобы запустить музыку в onResume() и остановиться на onPause() или аналогичном.

  2. После того, как я начал свою деятельность один раз, должна воспроизводиться музыка, даже если я вернусь на главный экран

    В этом случае вам действительно нужна Служба .

...