我正在我的应用程序中实现 MediaPlayer 类,并且我希望在后台播放音乐,所以我使用了 Service 而不是 Activity 或 BroadcastReciever。现在的问题是,如果用户存在或暂停应用程序,音乐就会不停地播放。我确实添加了 onStop 和 onPause 方法,但问题仍然存在。而且我不能像在 Activity 类中那样调用 super.onPause() 方法。
经过一些研究,我发现即使应用程序暂停或停止,服务也会保持活跃。(我不知道这是真的)但根据我的经验,我认为这是真的。我该怎么办?我在 google 和 stackoverflow 上搜索了答案,但没有得到答案。
这是一个代码。
package in.isuru.animation;
import android.app.Service;
import android.content.Intent;
import android.media.MediaPlayer;
import android.os.IBinder;
import android.util.Log;
public class PlayMusic extends Service{
private static final String TAG = null;
MediaPlayer player;
public void onCreate(){
super.onCreate();
Log.d(TAG, "Music service started onCreate()");
player = MediaPlayer.create(this, R.raw.oh_holy_night);
player.setLooping(true);
//player.setVolume(100, 100);
}
public int onStartCommand(Intent intent, int flags, int startId){
player.start();
Log.d(TAG, "Player started!");
if(player.isLooping() != true){
Log.d(TAG, "Player not playing any file.");
}
return 1;
}
public void onStart(Intent intent, int startId){
}
public IBinder onUnBinder(Intent arg0){
return null;
}
public void onStop(){
player.stop();
player.release();
}
public void onPause(){
player.stop();
player.release();
}
public void onDestroy(){
player.stop();
player.release();
Log.d(TAG, "Player destroyed");
}
public void onLowMemory(){
player.release();
}
@Override
public IBinder onBind(Intent arg0) {
return null;
}
}