在我的应用程序中有背景音乐,因为我有一项服务。它工作正常,但当我关闭应用程序或关闭屏幕时,它“继续播放”。
我应该更改onPause
或onStop
中的内容吗?
我的代码:
public class MyService extends Service {
private final String TAG = null;
MediaPlayer player;
public IBinder onBind(Intent arg0) {
return null;
}
@Override
public void onCreate() {
super.onCreate();
player = MediaPlayer.create(this, R.raw.id);
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;
}
protected void onStop() {
player.pause();
}
public void onPause() {
player.pause();
}
@Override
public void onDestroy() {
player.stop();
player.release();
}
@Override
public void onLowMemory() {
}
}
答案 0 :(得分:0)
当屏幕关闭时,您的活动变得不可见,触发 onPause ,然后是 onStop
另一方面,屏幕上会触发 onStart ,然后触发 onResume 。
什么时候你想停止使用服务
stopService(new Intent(ActivityName.this, ServiceClassName.class));
答案 1 :(得分:0)
可能会以某种方式创建播放器的副本。尝试使MediaPlayer变量静态,然后在暂停onPause()后尝试释放它。无论如何,你在服务中创建MediaPlayer实例是很奇怪的。