Я вижу несколько способов решить эту проблему:
проблема в том, что - каждый раз, когда пользователь входит в новое действие, музыка останавливается на секунду, а затем возобновляется, потому что на секунду текущее действиеприостановлено
Во-первых, вы устанавливаете флаг в обработчике, который запускает ваше новое действие, и проверяете в методе onPause () значение флага de, если false, ничего не делать, иначе отключите звук.
public static boolean openOtherActivity = false;
@Override
protected void onPause() {
super.onPause();
if (!openOtherActivity) {
MusicService.getMP().mute();
}
}
Вы также можете использовать Предпочтения, если предпочитаете
Чтобы решить проблемы de onCreate () и onResume (), вы можете использовать ту же логику, создающую флаг для службзапускать и контролировать, когда нужно включить звук другими способами
public static boolean isServiceCreated = false; // In your activity that start the service
protected void onCreate(Bundle savedInstanceState) {
counter++;
if (counter==1) {
alliesSPEditor.putBoolean("isAllies", true);
alliesSPEditor.commit();
startService(new Intent(this,MusicService.class));
isServiceCreated = true; // set the flag to true
}
}
OnResume() method you can check if the service is started an create your logic