这个问题已被问过几次,但没有一个答案帮助我解决了我的问题,所以我发布了我的版本。
我正在创建一个通过服务播放歌曲列表的应用。问题是我在旋转设备后从mediaPlayer获得了一个null异常错误。正如您在下面看到的,我首先启动然后在onResume方法中绑定到我的服务。同样,我在onDestroy方法中取消绑定并停止服务。
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();
}
在我的服务中,我在服务的onCreate方法中设置了mediaPlayer,如下所示。我在onStartCommand方法中有一些东西(比如创建一个在操作栏中显示的通知)。我还在onStartCommand方法中返回Start_sticky。
不幸的是,就像我说的那样,当我旋转设备时,我从mediaPlayer获得了一个null异常。
请帮忙;我已经试图解决这个问题好几天了。
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");