在我们的应用程序中,我们有一个 MusicService。目前,它在播放音乐和停止音乐方面工作得非常好,但那是从启动和停止服务开始。我们在其他方法中调用它,但mp.pause()
除非它被空检查器包围,否则它会崩溃。但是当它检查空值时它根本不起作用。我们之前已经完成了所有这些工作,但我们开始重新格式化这样做的方式,因为Android 4.0 (ICS)
即使我们停止音乐,音乐也会继续随机播放,但无论如何这不是重点。
public class MusicService extends Service {
public static MediaPlayer mp;
@Override
public IBinder onBind(final Intent arg0) {
return null;
}
@Override
public void onCreate() {
super.onCreate();
mp = MediaPlayer.create(this, R.raw.title_music);
mp.setLooping(true);
mp.setVolume(200, 200);
}
@Override
public int onStartCommand(final Intent intent, final int flags, final int startId) {
mp.start();
return 1;
}
@Override
public void onStart(final Intent intent, final int startId) {
}
public IBinder onUnBind(final Intent arg0) {
return null;
}
public static void onStop() {
mp.stop();
mp.release();
}
public static void onPause() {
if (mp!=null) {
mp.pause();
}
}
public static void onResume() {
if (mp!=null) {
mp.start();
}
}
@Override
public void onDestroy() {
mp.stop();
mp.release();
super.onDestroy();
}
@Override
public void onLowMemory() {
mp.stop();
mp.release();
}
}
我们正在使用它在另一个活动中启动服务:
intent = new Intent(this, MusicService.class);
startService(intent);