在Android中单击后退键并返回活动后,音乐不会播放

在Android中单击后退键并返回活动后,音乐不会播放,android,Android,我正在尝试使用MediaController使用videoView播放音频。音频播放良好,当我单击后退键时,控件返回到以前的状态。但当我再次从启动屏幕选择“活动”时,会显示“活动”,但不会播放音乐。有人能帮我解决这个问题吗? 代码如下: public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.vid

我正在尝试使用MediaController使用videoView播放音频。音频播放良好,当我单击后退键时,控件返回到以前的状态。但当我再次从启动屏幕选择“活动”时,会显示“活动”,但不会播放音乐。有人能帮我解决这个问题吗? 代码如下:

public void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);
        setContentView(R.layout.video);

        videoView = (VideoView)this.findViewById(R.id.videoView);
      videoView.setVideoPath("http://www.pocketjourney.com/downloads/pj/video/famous.3gp");
        final MediaController mc = new MediaController(this);
        videoView.setMediaController(mc);
        videoView.setVideoURI(Uri.parse("http://www.pocketjourney.com/downloads/pj/tutorials/audio.mp3"));


        videoView.requestFocus();
        videoView.start();
        videoView.setMediaController(new MediaController(this)
        {
            public void hide()
            {
                System.out.println("HIDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEHELLLOO");
                mc.show();
            }
        });




}


public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if (keyCode == KeyEvent.KEYCODE_BACK) {        
        moveTaskToBack(true); 
        return true;
    }
    return super.onKeyDown(keyCode, event);
}


提前感谢

如果您试图仅在活动处于前台时播放音乐,则您希望在
onResume
onPause
中启动和停止音乐,而不是onCreate


请看下面的图片。OnCreate仅在创建活动时调用一次。如果活动进入后台然后重新出现,则可能不会调用该活动。

如果您仅在活动处于前台时才尝试播放音乐,则希望在
onResume
onPause
中启动和停止音乐,而不是onCreate

# use this code...the song plays even if the user presses his back button #

public void playAudio(){
    MediaPlayer mp = new MediaPlayer();
    try {
        mp.setDataSource("/sdcard/fileaudio.mp3");
        mp.prepare();
        mp.start();
    } catch (IllegalArgumentException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IllegalStateException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }   

    mp.setOnCompletionListener(new OnCompletionListener() {

        @Override
        public void onCompletion(MediaPlayer mp) {
            // TODO Auto-generated method stub
            //playAudio();   
        }   
    });   

}
public void onBackPressed() {
    Intent intent = new Intent();
    intent
        .setAction(Intent.ACTION_MAIN)
        .addCategory(Intent.CATEGORY_HOME)
        .addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    startActivity(intent);

    finish();
}
请看下面的图片。OnCreate仅在创建活动时调用一次。如果活动进入后台然后重新出现,则可能不会调用它

# use this code...the song plays even if the user presses his back button #

public void playAudio(){
    MediaPlayer mp = new MediaPlayer();
    try {
        mp.setDataSource("/sdcard/fileaudio.mp3");
        mp.prepare();
        mp.start();
    } catch (IllegalArgumentException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IllegalStateException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }   

    mp.setOnCompletionListener(new OnCompletionListener() {

        @Override
        public void onCompletion(MediaPlayer mp) {
            // TODO Auto-generated method stub
            //playAudio();   
        }   
    });   

}
public void onBackPressed() {
    Intent intent = new Intent();
    intent
        .setAction(Intent.ACTION_MAIN)
        .addCategory(Intent.CATEGORY_HOME)
        .addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    startActivity(intent);

    finish();
}