Я делаю музыкальный плеер, и у меня есть список со всей музыкой. Когда вы нажимаете на него, он открывает новое действие и воспроизводит песню, но если я вернусь к списку и выберете другую песню, это не остановит первый. Как заставить его остановить музыку или закрыть первую активность при воспроизведении новой песни?
Я попытался установить launchMode на "singleTask", но это не сработало.
Вы можете вызвать finish()
свою музыкальную активность в onStop()
-method. Это закроет Activity и откроет новый, после того как вы выберете новую песню для воспроизведения.
Лучшим способом сделать это (с момента создания мультимедийного проигрывателя) будет воспроизведение музыки в Сервисе (не в действии) и просто используйте "плеер" -activity или "список воспроизведения" -activity, чтобы измените воспроизводимый звук.
Таким образом, пользователь может оставить ваше приложение и все еще слушать его музыку. Кроме того, он позволяет ему просматривать музыку на новом треке, слушая что-то еще.
Чтобы связаться с вашим Сервисом, вам нужно "привязать" его. В вашем случае я бы предложил Binder
сделать это. Прочтите "Связанная служба" -article из документации для получения дополнительной информации/примеров.