Делает ли установка имени пакета явное неявное намерение? - PullRequest
0 голосов
/ 05 февраля 2019

Намерение будет неявным без третьей строки кода.Делает ли установка пакета явным?Компонент не указан, поэтому на основе Stack Overflow отвечает : он неявный ...

Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
intent.setPackage("com.example.app");
startActivity(intent);

... но имя пакета целевого приложения указывается, поэтомуявный, основанный на документах :

Явные намерения указывают, какое приложение будет удовлетворять намерению, предоставляя либо имя пакета целевого приложения, либо полностьюквалифицированное имя класса компонента.

1 Ответ

0 голосов
/ 05 февраля 2019

Явное означает, что определенное приложение (иначе пакет) должно обрабатывать намерение.

Когда вы устанавливаете пакет, который должен обрабатывать намерение, да, это делает его явным.

Добавление

Я принимаю во внимание определение явного , это означает, что действие определено.

полностью и четко выражено или продемонстрировано;не оставляя ничего просто подразумеваемого;однозначно:

Тогда, если отметите setPackage документы , в нем будет указано

(обычно необязательно) Установите явное приложениеимя пакета, которое ограничивает компоненты, к которым будет разрешаться это намерение.Если оставить значение по умолчанию пустым, будут рассмотрены все компоненты во всех приложениях.Если значение не нулевое, намерение может соответствовать только компонентам в данном пакете приложения.

Так что это все о том, как понимать термины Implicit и Explicit.

Для меня (и в соответствии с тем, что я понимаю из документации для Android), Implicit - это

Эй, я хочу поделиться этим удивительным изображением, давайте дадим его миру

Какойоткрывает селектор Facebook, Instagram, WhatsApp и т. д.

И Explicit is

Эй, я хочу поделиться этим удивительным изображением с Instagram , открыть его и поделитьсяизображение пожалуйста

, который открывает только Instagram (по пакетам).

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