Почему в музыкальном проигрывателе по умолчанию есть опция «Конец» в меню

Я заметил в Galaxy Note N7000 с Android 4.1.2, что в музыкальном проигрывателе по умолчанию есть опция «Конец» в меню, это не проблема и не ошибка, но я никогда не замечал эту опцию ни в одном другом приложении для Android, поэтому мне любопытно знать его назначение с точки зрения дизайна/кодирования/жизненного цикла приложения.

Пожалуйста, смотрите прикрепленное изображениевведите описание изображения здесь

Ответы (1)

Я не знаю конкретно об этом приложении, но могу ответить, основываясь на обычном поведении музыкальных плееров. Если музыка играет, когда вы выходите из приложения обычным способом, приложение запускает службу переднего плана , чтобы продолжать воспроизводить музыку. Это особый вид сервиса: он показывает уведомление «Выполняется», и Android не убьет его, чтобы освободить память, если только он не совсем отчаялся.

Иногда это именно то, что нужно пользователю: вы начинаете играть музыку, переключаетесь на другое приложение, а музыка продолжает играть. Но иногда неясно, как остановить его и избежать того, чтобы служба переднего плана занимала память. Опция «Закрыть» дает вам очевидный способ сделать это.

В большинстве случаев авторам приложений не следует добавлять опцию «Закрыть», потому что это сбивает пользователей с толку (так же, как вы были сбиты с толку здесь), и потому что жизненный цикл приложения Android не работает таким образом. В этом случае вероятность путаницы, вызванной службой переднего плана, больше, так что это разумный компромисс.

Хорошее объяснение, Дэн (+1 от меня). Я бы хотел, чтобы больше приложений имело кнопку закрытия (или, по крайней мере, предлагало вариант закрытия в меню), чтобы я мог решить, какое приложение я не считаю достаточно важным , чтобы продолжать работать, в то время как Android может решить иначе, и убить то, что я делаю . чувствую себя важным ;)
@Izzy Android никогда не остановит работающую службу перед действием, которого нет на экране. Реальный вариант, который вам нужен, — это параметр, который контролирует, синхронизируется ли приложение / обновляется в фоновом режиме.
Я знаю. Но возьмем такой пример: я читаю большую книгу в своем устройстве для чтения электронных книг и делаю это всякий раз, когда есть перерыв (например, в метро или в ожидании xyz). Сейчас мне нужно кое-что проверить, позвонить, я занят. Циклический просмотр множества приложений, может быть, даже более крупных. Я хочу быстро вернуться к своему читателю в любой момент, чтобы он не перезагружал книгу каждый раз, когда я переключаюсь на нее. Так что я скорее хочу выйти из Карт или любого другого большого приложения, которое я использовал между ними, чтобы мой ридер оставался в памяти. Но так как карты запускают службу, система завершает работу с читателем, если только я не могу выйти из карт.