Android 方向改变时仍能连续播放音频

Android 方向改变时仍能连续播放音频,android,audio,Android,Audio,这个问题已经被问了好几次了,但是没有一个答案能帮助我解决问题,所以我发布了我的版本 我正在创建一个通过服务播放歌曲列表的应用程序。问题是,在旋转设备后,我从mediaPlayer获得了一个空异常错误。正如您在下面看到的,我首先在onResume方法中启动并绑定到我的服务。同样,我在onDestroy方法中解除绑定并停止服务 请发布完整的堆栈跟踪。此外,如果运行服务的全部目的是它将在活动的生命周期之外继续运行,那么当活动被销毁时,为什么要停止服务?当您旋转屏幕时,活动被销毁,如果您在onDetr

这个问题已经被问了好几次了,但是没有一个答案能帮助我解决问题,所以我发布了我的版本

我正在创建一个通过服务播放歌曲列表的应用程序。问题是,在旋转设备后,我从mediaPlayer获得了一个空异常错误。正如您在下面看到的,我首先在onResume方法中启动并绑定到我的服务。同样,我在onDestroy方法中解除绑定并停止服务




请发布完整的堆栈跟踪。此外,如果运行服务的全部目的是它将在活动的生命周期之外继续运行,那么当活动被销毁时,为什么要停止服务?当您旋转屏幕时,活动被销毁,如果您在onDetroy中停止服务,也会停止服务。试着不要停止OnDestroyohh中的服务……当你旋转屏幕时,我没有接到onDestory的电话……哇……谢谢,让我试试。但是,如果我想完全结束应用程序,因为onDestroy没有被调用,那么我如何结束服务呢?好的。非常感谢你!现在唯一的问题是通知没有消失…我现在有一个新问题。我从onDestroy方法中删除了unbind()位,但是现在当我试图控制它时,我从mediaPlayer中得到了一个空指针异常。我的服务有一个onStartCommand方法,返回service.Start\u Sticky,但仍然不好。帮助
protected void onResume() {
    if (playIntent == null) {
        playIntent = new Intent(MainActivity.this, MediaService.class);

 //       if (n < 0) {
            startService(playIntent);
            bindService(playIntent, mediaConnection, Context.BIND_AUTO_CREATE);
            Log.d("Check", "Started Service");
  //      }
    }

    super.onResume();
}
static private MediaPlayer player;
private final IBinder musicBind = new MediaBinder();
Notification notification;
private int playbackDuration;
static Uri paths[][] = new Uri[MainActivity.NUMBER_OF_ARTISTS][MainActivity.NUMBER_OF_TRACKS];

public void onCreate() {
    // create the service
    super.onCreate();
    player = new MediaPlayer();
    player.reset();
    player.setLooping(true);
    initMediaPlayer();

    Log.d("Check", "In Service's OnCreate method");