Понимание того, какое действие начинается первым в приложении для Android - PullRequest
20 голосов
/ 03 июня 2011

Мне не понятно, как Android определяет, какое действие запускается первым при запуске приложения.В документации Android говорится следующее о файле AndroidManifest.xml о Деятельности :

"Только одно действие должно иметь категорию" основное "и категория" средства запуска "..."

Таким образом, в файле AndroidManifest.xml у вас должно быть только одно:

действие android: name = "android.intent.action.MAIN"

категория android: name = "android.intent.category.DEFAULT "

Однако, просматривая пример кода из Android SDK, приложение под названием" APIDemos "содержит файл манифеста с тоннами

" android.intent.action.MAIN "and" android.intent.category.DEFAULT "

Я полностью сбит с толку.Кажется, это идет вразрез с тем, что заявляет Google, но только один из них.Android просто захватывает то, что появляется первым в манифесте, и игнорирует все остальные?Если нет, то почему существует несколько ГЛАВНЫХ и ПО УМОЛЧАНИЮ?

Ответы [ 3 ]

9 голосов
/ 03 июня 2011

Действия очень часто должны поддерживать CATEGORY_DEFAULT, чтобы их можно было найти в Context.startActivity (). Таким образом, CATEGORY_DEFAULT может появляться несколько раз.

Android не захватывает тот, который появляется первым в манифесте, но начинается с действия, имеющего CATEGORY_LAUNCHER.

CATEGORY_LAUNCHER: действие может быть начальным действием задачи и указано в панели запуска приложений верхнего уровня.

Для получения более подробной информации см .: http://developer.android.com/guide/topics/intents/intents-filters.html

6 голосов
/ 03 июня 2011

Я полностью сбит с толку. Похоже, это идет вразрез с тем, что заявляет Google, если предположить, что он один.

Это не идет вразрез. Эти действия имеют категорию CATEGORY_DEFAULT , но не CATEGORY_LAUNCHER.

5 голосов
/ 03 июня 2011

action.MAIN и category.LAUNCHER - это те, которые используются для указания того, какое действие запускается, когда пользователь нажимает значок вашего приложения или выбирает его из рабочего списка приложений.

Вы можете использовать другие комбинациидействий и категории. ПО УМОЛЧАНИЮ реагировать на различные события, но комбинация action.MAIN и category.LAUNCHER должна быть определена только один раз.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...