Я использую класс Android MediaPlayer для воспроизведения mp3-файла из работающего класса службы. Я хотел остановить воспроизведение музыкального проигрывателя, если пользователь перестанет просматривать любое из пяти действий.
Я попробовал это, используя приведенный здесь код, чтобы отправить широковещательное намерение службе, которая содержит MediaPlayer. Таким образом, когда приемник вещания внутри службы получает это намерение, он вызывает метод player.pause(), чтобы остановить воспроизведение музыки.
Однако это не работает. Я запустил плеер во время просмотра одного из действий, а затем вышел из приложения и просмотрел какое-то другое приложение, например приложение календаря Android. Музыка не останавливается и продолжает играть.
Любые идеи о том, как решить эту проблему?
public class Monitor extends Application {
@Override
public void onCreate(){
super.onCreate();
if(activityVisible==false){
Intent intent = new Intent();
intent.setAction("com.sample.test");
sendBroadcast(intent);
}
}
public static boolean isActivityVisible() {
return activityVisible;
}
public static void activityResumed() {
activityVisible = true;
}
public static void activityPaused() {
activityVisible = false;
}
private static boolean activityVisible;
}
И вот что я вложил в каждое из остальных 5 действий;
@Override
protected void onResume() {
super.onResume();
Monitior.activityResumed();
}
@Override
protected void onPause() {
super.onPause();
Monitor.activityPaused();
}