我正在使用Service
课程在后台播放音乐。当我在顶部显示通知栏时,我的应用程序中存在问题。当我杀死应用程序时,音乐会停止大约1秒钟然后再次启动。我无法弄清楚问题是什么。
我正在关注this教程。
public class MyMusicService extends Service {
MediaPlayer mediaPlayer;
@Nullable
@Override
public IBinder onBind(Intent intent) {
return null;
}
public MyMusicService() {
super();
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
if (mediaPlayer!= null)
{
mediaPlayer.release();
}
mediaPlayer =MediaPlayer.create(this,R.raw.song);
mediaPlayer.setLooping(true);
mediaPlayer.start();
return START_STICKY;
}
@Override
public void onDestroy() {
super.onDestroy();
mediaPlayer.stop();
}
}
答案 0 :(得分:1)
在主要活动上使用onTaskRemoved,并在此事件上释放媒体播放器。
答案 1 :(得分:0)
根据:https://developer.android.com/reference/android/app/Service.html 改变
START_STICKY
到
START_NOT_STICKY
编辑:
音乐停止一段时间的问题与您在同一过程中运行应用和服务这一事实有关。而'kill app'意味着停止与它绑定的整个过程。您需要做的是在单独的过程中运行您的服务:
答案 2 :(得分:0)
该教程向您展示了如何构建可能被系统杀死的BACKGROUND服务。要播放音乐,您应该使用FOREGROUND服务。
https://developer.android.com/guide/components/services.html#Foreground