我有一个应用程序,里面有背景音乐。当我按下主页按钮时,背景音乐仍在播放。之后,当我单击主页按钮右侧的最近使用的应用程序按钮,并通过滑动或按 X 关闭应用程序时,它会重新启动,就像应用程序再次启动一样,而不是关闭当前播放的音乐。我该如何解决这个问题?
我在哪里添加 onTaskRemoved() 方法?
package com.example.dmacs.myapplication;
/**
* Created by dmacs on 4/8/16.
*/
import android.app.Service;
import android.content.Intent;
import android.media.MediaPlayer;
import android.os.IBinder;
import java.util.Random;
/**
* Created by digen on 3/8/16.
*/
public class BackgroundAudioService extends Service implements MediaPlayer.OnCompletionListener {
MediaPlayer mediaPlayer;
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public void onCreate() {
int mfile[] = new int[5];
mfile[0]= R.raw.bgm1;
mfile[1]= R.raw.bgm2;
mfile[2]= R.raw.bgm3;
mfile[3]= R.raw.bgm4;
mfile[4]= R.raw.bgm5;
Random random = new Random();
int Low = 0;
int High = mfile.length;
int randomInt = random.nextInt(High-Low) + Low;
mediaPlayer = MediaPlayer.create(this, mfile[randomInt]);// raw/s.mp3
mediaPlayer.setOnCompletionListener(this);
}
@Override
public int onStartCommand (Intent intent,int flags, int startId){
if (!mediaPlayer.isPlaying()) {
mediaPlayer.start();
}
return START_STICKY;
}
public void onDestroy() {
if (mediaPlayer.isPlaying()) {
mediaPlayer.stop();
}
mediaPlayer.release();
}
public void onCompletion(MediaPlayer _mediaPlayer) {
stopSelf();
}
}
最佳答案
点击主页按钮显然不会停止 Service
在后台运行并将应用程序从“最近”中滑出也不起作用,操作系统将重新启动 Service
因为START_STICKY
从 onStartCommand()
返回.
你只需要停止 Service
在适当的时候(例如,在 onPause()
中)通过调用 stopService()
.
停止你的 Service
当你的应用程序被刷出最近,你可以覆盖 onTaskRemoved()
并调用stopSelf()
从那里:
@Override
public void onTaskRemoved(Intent rootIntent) {
stopSelf();
}
关于android - 在android中按下主页按钮时退出应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38824297/