【发布时间】:2016-08-27 14:47:00
【问题描述】:
我已阅读此 SO 问题,但对我没有帮助...Android Background Service is restarting when application is killed。但这里提到的答案根本没有帮助我。请考虑这个
我想为背景音乐创建一个服务,并且即使我的应用程序关闭也想播放它。所以我写了以下代码...
package elsner.com.mediaplayer;
import android.app.Service;
import android.content.Intent;
import android.media.MediaPlayer;
import android.os.Handler;
import android.os.IBinder;
import android.support.annotation.Nullable;
import android.util.Log;
/**
* Created by nteam on 6/2/16.
*/
public class BackGround extends Service {
MediaPlayer mPlayer;
@Nullable
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public void onCreate() {
super.onCreate();
Log.i("niral", "Service Create");
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
Log.i("niral", "Service Start");
final Handler h = new Handler();
final long delayInMilliseconds = (6000*10);
new Thread(new Runnable() {
@Override
public void run() {
mPlayer = MediaPlayer.create(getApplicationContext(), R.raw.aayat);
mPlayer.start();
h.postDelayed(new Runnable() {
public void run() {
mPlayer.stop();
}
}, delayInMilliseconds);
}
}).start();
return START_NOT_STICKY;
}
}
在我从后台杀死应用程序之前一切正常。一旦我从后台杀死应用程序,我的服务就会重新启动,并且音乐文件将从顶部播放。
我通过在“最近使用的应用程序”中刷掉该应用程序来终止该应用程序。
请帮帮我。
【问题讨论】:
-
如果你杀死一个应用程序它会被杀死,你可以用默认的音乐播放器试试这个,如果你杀死它也会停止
-
您是否尝试在服务的 onStartCommand 方法中返回 START_STICKY?
-
@VivekMishra 不,我已经用音乐应用程序尝试过它......它的钢铁演奏
-
@udenfox 是的,我试过了,但没有运气
-
你唯一能做的就是使用
startForeground,但它不会让你的服务“永生”
标签: android service media-player