Какова цель использования android.intent.category.DEFAULT
в поле «Категория» фильтров намерений?
Какова цель использования android.intent.category.DEFAULT
в поле «Категория» фильтров намерений?
Ответы:
Категории используются для неявных намерений. Итак, если действие может быть запущено неявным намерением, когда действию не назначена никакая другая конкретная категория, фильтр намерения действия должен включать эту категорию. (даже если у вас есть другие категории в фильтре Intent). Если вы уверены, что ваше действие должно вызываться с любой другой категорией, не используйте Default.
Установка категории по умолчанию не означает, что это действие будет использоваться по умолчанию при запуске вашего приложения. Действие просто говорит системе: « О, я мог бы быть запущен, даже если для категории начального намерения установлено значение« Ничего » ! »
Эта категория в основном используется для неявных намерений. Если ваша деятельность должна быть начата с неявного намерения, она должна включить эту категорию в свой фильтр.
Я думаю, что термин «дефолт» следует понимать как « кандидат по умолчанию ». Если действие над фрагментом данных разрешается для нескольких действий, тогда Android представит пользователю всех кандидатов, и пользователь сможет выбрать предпочтительное значение по умолчанию.
Ссылка:
http://developer.android.com/guide/components/intents-filters.html
Выдержка с этой страницы:
Android обрабатывает все неявные намерения, переданные tostartActivity (), как если бы они содержали хотя бы одну категорию: «android.intent.category.DEFAULT» (константа CATEGORY_DEFAULT). Следовательно, действия, которые хотят получать неявные намерения, должны включать "android.intent.category.DEFAULT" в свои фильтры намерений. (Фильтры с настройками «android.intent.action.MAIN» и «android.intent.category.LAUNCHER» являются исключением. Они отмечают действия, с которых начинаются новые задачи и которые отображаются на экране запуска. Они могут включать «android.intent .category.DEFAULT "в списке категорий, но не обязательно.)
На самом деле это делается для того, чтобы во время работы приложения можно было вызывать другие ваши действия. LAUNCHER сделает действие, в котором оно есть, первым, которое запускается. Чтобы использовать намерения для перехода к другим действиям, они должны быть указаны как «фактические» действия, поставив ПО УМОЛЧАНИЮ. Это из того, что я знаю, поэтому не цитируйте меня, если это неправильно.
Действия должны поддерживать CATEGORY_DEFAULT, чтобы их можно было найти с помощью Context.startActivity ().
Чтобы получать неявные намерения, вы должны включить категорию CATEGORY_DEFAULT в фильтр намерений. Методы startActivity () и startActivityForResult () обрабатывают все намерения, как если бы они объявили категорию CATEGORY_DEFAULT. Если мы не объявим это в нашем фильтре намерений, никакие неявные намерения не будут разрешены для нашей активности.
Он используется для объявления некоторой операции действием по умолчанию (как следует из названия). Допустим, у нас есть приложение для блокнота (имеется в виду пример блокнота для Android). Первая страница приложения состоит из списка всех файлов блокнота. Когда выбран один файл блокнота, может быть выполнена одна из операций, таких как редактирование заметки, удаление заметки и т. Д. Но я хочу сделать редактирование своим действием по умолчанию, а это значит, что когда я нажимаю центральную кнопку на клавиатуре, должно открываться окно редактирования.
https://developer.android.com/guide/components/intents-filters
Чтобы получать неявные намерения, вы должны включить категорию CATEGORY_DEFAULT в фильтр намерений. Методы startActivity () и startActivityForResult () обрабатывают все намерения, как если бы они объявили категорию CATEGORY_DEFAULT. Если вы не объявите эту категорию в своем фильтре намерений, никакие неявные намерения не будут разрешены для вашей активности.
категория:
android.intent.category.DEFAULT
Соответствует любому неявному намерению. Эта категория должна быть включена, чтобы ваша деятельность могла получить какое-либо неявное намерение.