Android问题 - 后台服务不会停止

时间:2014-01-05 15:15:18

标签: android audio

大家好,我是Android开发的绝对新手 我现在正在创建一个简单的Android应用程序,我使用“BackgroundService”作为背景音乐 我设法播放音乐;我的问题是当我关闭我的应用程序或按下主页按钮时,音乐不会停止 你能帮帮我吗? 这是我的代码:

MediaPlayer player;
public IBinder onBind(Intent arg0) {

    return null;
}
@Override
public void onCreate() {
    super.onCreate();
    player = MediaPlayer.create(this, R.raw.sample);
    player.setLooping(true); // Set looping
    player.setVolume(100,100);

}
public int onStartCommand(Intent intent, int flags, int startId) {
    player.start();
    return 1;
}

public void onStart(Intent intent, int startId) {
    // TO DO
}
public IBinder onUnBind(Intent arg0) {
    // TO DO Auto-generated method
    return null;
}

public void onStop() {

}
public void onPause() {

}
@Override
public void onDestroy() {
    player.stop();
    player.release();
}

@Override
public void onLowMemory() {

}

}

2 个答案:

答案 0 :(得分:1)

在onPause方法上

,也添加

player.stop();
player.release();

希望这会有所帮助

答案 1 :(得分:0)

您应该真正理解服务的概念。 服务用于管理在后台运行并且不需要UI的繁重任务。简单来说,即使活动不再可见,服务也用于在后台执行繁重的任务。

即使您的活动被销毁,

服务仍然有效。您必须手动停止服务。在您的活动的onPause()中,尝试停止服务。

stopService(this, serviceClassName.class)

并且在服务的onPause()中你应该停止并释放播放器

player.stop();
player.release();

请参阅此链接,详细了解服务及其生命周期developers.android.com