- Что такое Намерение в Android?
- Может кто-нибудь уточнить на примере?
- Какие типы Intents и почему мы их используем?
- Почему Интенты так важны в Android?
Ответы:
Намерение является «намерение» выполнить действие; другими словами,
объект обмена сообщениями, который можно использовать для запроса действия у другого компонента приложения
Намерение - это сообщение о том, что вы сделали или хотите, чтобы что-то произошло. В зависимости от цели приложения или ОС могут его прослушивать и будут реагировать соответствующим образом. Думайте об этом как о взломанной электронной почте для группы друзей, в которой вы говорите своему другу Джону сделать что-то, или друзьям, которые могут сделать X ( «фильтры намерений» ), чтобы сделать X. Другие люди будут игнорировать электронную почту, но Джон (или друзья, которые могут сделать X) будет реагировать на это.
Для прослушивания намерения вещания (например, звонка телефона или получения SMS) вы реализуете приемник вещания , которому передается намерение. Чтобы объявить, что вы можете обрабатывать намерения другого приложения, такие как «сделать снимок», вы объявляете фильтр намерений в файле манифеста вашего приложения .
Если вы хотите запустить намерение что-то сделать, например, всплыть номеронабиратель, вы включите намерение сказать, что вы будете.
Намерение в основном это сообщение , которое передается между компонентами (например, деятельность , услуги, радиоприемников, и контент - провайдеров ). Таким образом, это почти эквивалентно параметрам, передаваемым вызовам API. Принципиальные различия между вызовами API и вызовом компонентов через намерения:
Конечно, Intents можно заставить работать точно так же, как вызовы API, используя так называемые явные намерения, которые будут объяснены позже. Но чаще всего подразумеваются неявные намерения , и это то, что объясняется здесь.
Один компонент, который хочет вызвать другой, должен только выразить свое намерение выполнить работу. И любой другой компонент, который существует и который заявил, что может выполнять такую работу через фильтры намерений , вызывается платформой Android для выполнения этой работы. Это означает, что ни один из компонентов не знает о существовании друг друга, но все же может работать вместе, чтобы дать желаемый результат для конечного пользователя.
Эта невидимая связь между компонентами достигается за счет комбинации намерений, фильтров намерений и платформы Android.
Это приводит к огромным возможностям, таким как:
Вот дополнительные технические подробности об Intents из документации Android .
Намерение - это абстрактное описание выполняемой операции. Его можно использовать с startActivity для запуска Activity, для передачи BroadIntent его любым заинтересованным компонентам BroadcastReceiver и startService (Intent) или bindService (Intent, ServiceConnection, int) для взаимодействия с фоновой службой.
Intent предоставляет возможность для позднего связывания во время выполнения между кодом в разных приложениях. Его наиболее важное использование - запуск мероприятий, где его можно рассматривать как связующее звено между действиями. По сути, это пассивная структура данных, содержащая абстрактное описание выполняемого действия. Основными частями информации в намерении являются:
- действие Общее действие, которое нужно выполнить, например ACTION_VIEW, ACTION_EDIT, ACTION_MAIN и т. д.
- данные Данные, с которыми нужно работать, например, запись о человеке в базе данных контактов, выраженная в виде Uri.
Intents - это способ рассказать Android, что вы хотите сделать . Другими словами, вы описываете свое намерение. Интенты могут использоваться для оповещения системы Android о том, что произошло определенное событие. Другие компоненты в Android могут зарегистрироваться на это событие через фильтр намерений.
Ниже приведены 2 типа намерений
используется для вызова определенного компонента. Когда вы знаете, какой компонент вы хотите запустить, и не хотите давать пользователю свободный контроль над тем, какой компонент использовать. Например, у вас есть приложение, которое имеет 2 действия. Действие A и действие B. Вы хотите запустить действие B из действия A. В этом случае вы определяете явное намерение, нацеленное на действиеB, а затем используете его для прямого вызова.
используется, когда у вас есть представление о том, что вы хотите сделать, но вы не знаете, какой компонент следует запустить. Или, если вы хотите дать пользователю возможность выбирать между списком компонентов для использования. Если эти Интенты отправляются в систему Android, то выполняется поиск всех компонентов, которые зарегистрированы для конкретного действия и типа данных. Если найден только один компонент, Android запускает компонент напрямую. Например, у вас есть приложение, которое использует камеру для фотографирования. Одной из особенностей вашего приложения является то, что вы предоставляете пользователю возможность отправлять сделанные им фотографии. Вы не знаете, какое приложение имеет пользователь, который может отправлять фотографии, и вы также хотите дать пользователю возможность выбрать, какое внешнее приложение использовать, если у него более одного. В этом случае вы не будете использовать явное намерение.
Явное намерение всегда доставляется к цели, независимо от того, что оно содержит; с фильтром не справляются. Но неявное намерение доставляется компоненту, только если оно может пройти через один из фильтров компонента
Если содержание отправляется в систему Android, оно определит подходящие приложения для этого намерения. Если для этого типа Intents было зарегистрировано несколько компонентов, Android предлагает пользователю выбрать один из них.
Это определение основано на IntentFilters. IntentFilters указывает типы Intent, на которые может реагировать действие, служба или Broadcast Receiver. Фильтр намерений объявляет возможности компонента. В нем указывается, что может делать служба или служба и какие типы широковещательных сообщений может обрабатывать приемник. Это позволяет соответствующему компоненту получать содержимое объявленного типа. IntentFilters обычно определяются через файл AndroidManifest.xml. Для BroadcastReceiver также возможно определить их в кодировании. IntentFilters определяется его категорией, действием и фильтрами данных. Он также может содержать дополнительные метаданные.
Если компонент не определяет фильтр Intent, он может быть вызван только явным Intents.
Ниже приведены 2 способа определения фильтра.
Если вы определяете фильтр намерений в манифесте, ваше приложение не должно запускаться, чтобы реагировать на намерения, определенные в его фильтре. Android регистрирует фильтр при установке приложения.
Если вы хотите, чтобы ваш широковещательный получатель получал намерение только тогда, когда ваше приложение работает. Затем вы должны определить свой фильтр намерений во время выполнения (программно). Имейте в виду, что это работает только для приемников вещания.
После написания одного действия возникает необходимость перехода к другому действию для выполнения другого задания с информацией или без информации из первого действия.
Платформа Android позволяет переход с помощью Intent Interface.
Слова взяты отсюда: с помощью Intent Demo, и я предлагаю вам пройти этот пример, потому что они также предоставили файл кода. так что вы можете использовать его и легко понять то же самое.
Android Intent позволяет вам переходить от одного действия Android к другому. С примерами в этом руководстве также рассказывается о различных типах Android.
Android Intent может быть определен как простой объект сообщения, который используется для связи от одного действия к другому.
Намерения определяют намерение Приложения. Они также используются для передачи данных между действиями.
Намерение Android можно использовать для выполнения следующих 3 задач:
Намерение может быть широко классифицировано на 2 категории. Для этой категории нет ключевых слов, а только широкая классификация того, как используются намерения Android.
Явное намерение Android
Явное намерение Android - это намерение, в котором вы явно определяете компонент, который должен вызываться системой Android.
Intent MoveToNext = new Intent (getApplicationContext(), SecondActivity.class);
Неявное намерение Android
Неявное Android Intents - это намерение, при котором вместо определения точных компонентов вы определяете действие, которое хотите выполнить. Решение обработать это действие остается за операционной системой. ОС решает, какой компонент лучше всего использовать для неявных намерений. Давайте посмотрим на пример:
Intent sendIntent = new Intent();
sendIntent.setAction(Intent.ACTION_SEND);
Для получения дополнительной информации вы можете посетить ниже
http://developer.android.com/reference/android/content/Intent.html
Согласно их документации:
Намерение - это объект, который обеспечивает связывание во время выполнения между отдельными компонентами (например, двумя действиями). Намерение представляет собой намерение приложения что-то сделать. Вы можете использовать намерения для самых разных задач, но чаще всего они используются для запуска другого действия.
Вот ссылка с примером: http://developer.android.com/training/basics/firstapp/starting-activity.html#BuildIntent
Как описано в документе, для начала действия (вам также необходимо понять, что такое действие) используйте намерение, как показано ниже
/** Called when the user clicks the Send button */
public void sendMessage(View view) {
Intent intent = new Intent(this, DisplayMessageActivity.class);
EditText editText = (EditText) findViewById(R.id.edit_message);
String message = editText.getText().toString();
intent.putExtra(EXTRA_MESSAGE, message);
startActivity(intent);
}
Намерение - это абстрактное описание выполняемой операции. Его можно использовать с startActivity для запуска Activity, для передачи BroadIntent его любым заинтересованным компонентам BroadcastReceiver и startService (Intent) или bindService (Intent, ServiceConnection, int) для взаимодействия с фоновой службой.
Для более подробной информации смотрите эти ссылки:
1). http://developer.android.com/reference/android/content/Intent.html
2) http://developer.android.com/guide/topics/intents/intents-filters.html
3). http://www.vogella.de/articles/AndroidIntent/article.html
Есть еще много статей доступны.
что такое Intent?
Это своего рода сообщение или информация, которая передается компонентам. Он используется для запуска деятельности, отображения веб-страницы, отправки смс, отправки электронной почты и т. Д.
Есть два типа намерений в Android:
Неявное намерение
явное намерение
Неявное намерение используется для вызова системных компонентов
пример
Intent i = newIntent(android.content.Intent.ACTION_VIEW,Uri.parse(“http://www.amazon.com”));
startActivity(i);
Явное намерение используется для вызова класса активности.
пример
Intent intent = newIntent (this, SecondActivity.class);
startActivity(intent);
Вы можете прочитать больше
http://www.vogella.com/tutorials/AndroidIntent/article.html#intents_overview http://developer.android.com/reference/android/content/Intent.html
В широком смысле, мы можем определить намерение как
Когда одно действие хочет запустить другое действие, оно создает объект с именем Intent, который указывает, какое действие он хочет запустить.
Приложение Android может содержать ноль или более действий. Если в вашем приложении более одного действия, вам часто приходится переходить от одного к другому. В Android вы перемещаетесь между действиями через то, что известно как намерение. Вы можете передать некоторые данные в действие, которое хотите начать через намерение, используя putExtra ().
Из бумажной Deep Dive into Android IPC/Binder Framework atAndroid Builders Summit 2013
ссылки
Намерение понимается в некоторых небольших, но эффективных линиях
Из этой ветки простой ответ архитектора андроида Дайан Хэкборн утверждает, data container
что это действительно так.
С точки зрения архитектуры Android :
Intent - это контейнер данных, который используется для взаимодействия между процессами. Он построен на основе Binder
архитектуры Android.
Интенты используются для инициирования другого действия из одного действия. Оно в основном используется для нескольких целей, таких как отправка данных в другое действие из одного действия, и для целей запуска.
Они в основном двух типов
Неявные намерения.
Явные намерения.
Как начинающий, я знаю это очень много, я думаю, что это даст некоторое общее представление о намерениях Android