Почему приложения Android не предоставляют возможность “Exit”?

Есть ли что-то в инструкциях разработчика Android, которое отговаривает разработчиков от предоставления возможности "выйти" (прекратите работать), приложение из самого приложения?

Я люблю многозадачность, и все кроме он не ясен мне почему:

  • подавляющее большинство приложений не имеет их собственных функций Выхода и следовательно просто продолжает бежать навсегда
  • не давайте Вам выбор относительно выполнения, когда Вы поворачиваетесь по телефону - они просто делают по умолчанию

Обе из этих вещей приводят к использованию памяти, постоянно увеличивающемуся и Вашему устройству, работающему с этой нагрузкой производительности все время несмотря на то, что можно только хотеть, чтобы определенные приложения выполнили часть времени.

Я пропускаю что-то?

9
задан Howiecamp 14 March 2010 в 01:48
поделиться

4 ответа

Есть ли в руководстве для разработчиков Android что-то, что отговаривает разработчиков от предоставления возможности "выйти" (прекратить выполнение) приложения изнутри Само приложение ?

Да. Обычно в этом нет необходимости, так же как обычно не требуется перезапускать веб-сервер, потому что какой-то пользователь с браузером решил (а), что он завершил работу с веб-приложением.

подавляющее большинство приложений не имеют собственных функций выхода и, следовательно, просто продолжают работать вечно

Они не работают вечно. Android закроет все по мере необходимости.

не дают вам выбора запускать при включении телефона - они просто делают это по умолчанию

Эти разработчики не обращают на меня внимания .

Обе эти вещи приводят к постоянному увеличению использования памяти

Как правило, это не так. Если вы найдете определенные приложения, которые делают это, удалите их.

и ваше устройство постоянно работает с бременем производительности

Как правило, это не так. Если вы найдете определенные приложения, которые делают это, удалите их.

Кроме того, этот вопрос дублирует этот .

15
ответ дан 4 December 2019 в 08:51
поделиться

"Обе эти вещи приводят к постоянному увеличению использования памяти"

Что не имеет значения, поскольку приложения Android ограничены фиксированным объемом оперативной памяти. Освобождение оперативной памяти не даст больше оперативной памяти другим приложениям.

8
ответ дан 4 December 2019 в 08:51
поделиться

Со страницы Google Основы приложений для Android :

Выключение компонентов Поставщик контента активен только тогда, когда он отвечает на запрос от ContentResolver. А широковещательный приемник активен только тогда, когда он отвечает на широковещательное сообщение. Таким образом, нет необходимости явно отключать эти компоненты.

Действия, с другой стороны, предоставляют пользовательский интерфейс. Они находятся в длительном разговоре с пользователем и могут оставаться активными даже в режиме ожидания, пока продолжается разговор. Точно так же службы могут оставаться работающими в течение длительного времени. Итак, в Android есть методы для упорядоченного завершения действий и служб:

Активность можно завершить, вызвав ее метод finish (). Одно действие может закрыть другое действие (оно было запущено с помощью startActivityForResult ()), вызвав finishActivity (). Службу можно остановить, вызвав ее метод stopSelf () или вызвав Context.stopService (). { {1}} Компоненты также могут быть отключены системой, когда они больше не используются или когда Android должен освободить память для более активных компонентов. В следующем разделе «Жизненные циклы компонентов» эта возможность и ее разветвления рассматриваются более подробно.

Таким образом, кажется, что провайдеры контента и широковещательные приемники никогда не должны отключаться явным образом, поскольку они инертны, не обрабатывая свои конкретные события.

Что касается деятельности, я бы поспорил за ее прекращение, но в определенных случаях.Если ваше приложение имеет конечное состояние, в котором пользователь завершил его использование, зачем поддерживать его, пока GC не получит его? Диспетчеру действий по-прежнему необходимо отслеживать это действие, пока пользователь завершил свою задачу. Мой лучший пример - Калькулятор. Вы открываете его, он решает за вас проблему, а затем вы закрываете его. Если функция onCreate настолько дорогая, что более эффективно выполнить onCreate один раз, а затем onRestart всякий раз, когда пользователь возвращается в ваше приложение, то вы, вероятно, делаете что-то не так. Возможно, я неправильно понимаю, как Android обрабатывает Activity, и если это так, мне всегда интересно узнать больше :)

1
ответ дан 4 December 2019 в 08:51
поделиться

По сути, нет необходимости в кнопке выхода, если разработчик хорошо работает над дизайном своего приложения. Действия Android останавливаются, когда они не видны и ресурсы нужны в другом месте, поэтому они больше не потребляют ресурсы. Вы можете прочитать о жизненном цикле здесь :

Вот связанный с вопрос :

1
ответ дан 4 December 2019 в 08:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: