Что такое намерение в Android?

  • Что такое Intent в Android?
  • Может ли кто-нибудь разработать пример?
  • Каковы типы намерений и почему мы их используем?
  • Почему намерения настолько важны для Android?
+331
05 июл. '11 в 4:48
источник поделиться
20 ответов

An Intent является "намерением" выполнить действие; другими словами,

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

"Намерение" - это в основном сообщение о том, что вы сделали или хотите, чтобы что-то произошло. В зависимости от намерения приложения или ОС могут его слушать и будут реагировать соответственно. Подумайте об этом как о бласте электронной почты для группы друзей, в которой вы говорите своему другу Джону что-то сделать или друзьям, которые могут делать X ( "фильтры намерения" ), чтобы сделать X. Другие люди будут игнорировать электронную почту, но Джон (или друзья, которые могут сделать X) отреагируют на это.

Чтобы прослушать намерение трансляции (например, звонок по телефону или SMS-сообщение), вы реализуете широковещательный приемник, который будет передал намерение. Чтобы заявить, что вы можете обрабатывать намерение другого приложения, например "делать снимок", вы объявляете в своем файле манифеста приложения .

Если вы хотите скрыть намерение что-то сделать, например, вызвать дозвонщик, скрыть намерение, говорящее, что вы это сделаете.

+473
05 июл. '11 в 4:54
источник

Что такое намерение?

Intent - это, в основном, сообщение, передаваемое между компонентами (такими как Activities, Services, Broadcast Receivers и Content Providers). Таким образом, это почти эквивалентно параметрам, переданным вызовам API. Основные отличия между вызовами API и вызовами компонентов:

  • API-вызовы являются синхронными, а вызовы на основе асинхронности.
  • API-вызовы - это привязка времени компиляции, тогда как вызовы, основанные на намерениях, являются привязкой во время выполнения.

Разумеется, намерения можно заставить работать точно так же, как вызовы API, используя так называемые явные намерения, которые будут объяснены позже. Но чаще всего неявные намерения - это путь, и это объясняется здесь.

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

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

Это приводит к огромным возможностям, таким как:

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

Ниже приведены дополнительные технические сведения о намерениях из документации по Android.

Цель - абстрактное описание выполняемой операции. Он может использоваться с startActivity для запуска Activity, broadcastIntent для отправки его любым заинтересованным компонентам BroadcastReceiver и startService (Intent) или bindService (Intent, ServiceConnection, int) для связи с фоновым сервисом.

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

  • Действие Общее действие, которое необходимо выполнить, например ACTION_VIEW, ACTION_EDIT, ACTION_MAIN и т.д.
  • data Данные для работы, такие как запись человека в базе данных контактов, выраженная как Uri.

Выучить больше

+155
24 апр. '13 в 5:20
источник

Намерения - это способ сообщить Android, что вы хотите сделать. Другими словами, вы описываете свое намерение. Намерения могут использоваться для сигнализации в систему Android о том, что произошло определенное событие. Другие компоненты в Android могут зарегистрироваться на это событие через фильтр намерений.

Ниже приведены 2 типа намерений

1. Неявные намерения

используется для вызова определенного компонента. Когда вы знаете, какой компонент вы хотите запустить, и вы не хотите предоставлять пользователю свободный контроль над тем, какой компонент использовать. Например, у вас есть приложение, в котором есть 2 действия. Активность A и активность B. Вы хотите запустить активность B из действия A. В этом случае вы определяете явное намерение таргетинга activityB, а затем используете его для прямого вызова.

2.Implicit Intents

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

Явное намерение всегда передается его цели, независимо от того, что она содержит; фильтр не проконсультируется. Но неявное намерение доставляется компоненту только в том случае, если он может проходить через один из фильтров компонентов.

Фильтры намерения

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

Это определение основано на IntentFilters. IntentFilters определяет типы намерений, на которые могут реагировать действия, службы или приемник Broadcast. Intent Filter объявляет возможности компонента. В нем указывается, что может делать активность или услуга и какие типы трансляций может обрабатывать Receiver. Он позволяет соответствующему компоненту получать Intents объявленного типа. IntentFilters обычно определяются через файл AndroidManifest.xml. Для BroadcastReceiver также можно определить их при кодировании. IntentFilters определяется фильтрами категорий, действий и данных. Он также может содержать дополнительные метаданные.

Если компонент не определяет фильтр Intent, он может быть вызван только явным Intents.

Ниже приведены 2 способа определения фильтра

1. Файл манифеста

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

2.BroadCast Receiver

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

+47
07 окт. '13 в 3:44
источник

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

Если одно действие хочет начать второе действие, оно делает это отправляя намерение Android. Android начнет второе действие и передайте это намерение.

введите описание изображения здесь

Head First Android Development

+14
25 мар. '17 в 7:42
источник

После записи одного действия возникает необходимость перехода к другому действию для выполнения другой задачи с или без информации из первого действия.

Платформа Android позволяет осуществлять переход с помощью Intent Interface.

Слова берутся здесь: Используя демо-версию Intent, и я предлагаю вам пройти этот пример, потому что они также предоставили файл кода как Что ж. поэтому вы можете использовать его и легко понять то же самое.

+12
05 июл. '11 в 6:58
источник

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

+10
02 февр. '12 в 10:25
источник

Android Intent

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

Android Intent может быть определен как простой объект сообщения, который используется для связи из одной активности с другой.

Намерения определяют намерение Приложения. Они также используются для передачи данных между действиями.

Android Intent может использоваться для выполнения следующих трех задач:

  • Открыть другое действие или услугу из текущего действия
  • Передача данных между действиями и службами
  • Делегировать ответственность за другое приложение. Например, вы можете используйте намерения, чтобы открыть приложение браузера для отображения URL-адреса.

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

Явное намерение Android

Явное намерение Android - это намерение, в котором вы явно определяете компонент, который должен быть вызван системой Android.

 Intent MoveToNext = new Intent (getApplicationContext(), SecondActivity.class);

Неявное намерение Android

Неявные намерения Android - это намерение, где вместо определения точных компонентов вы определяете действие, которое хотите выполнить. Решение об устранении этого действия остается в операционной системе. ОС решает, какой компонент лучше всего запускать для неявных намерений. Обратимся к примеру:

    Intent sendIntent = new Intent();
    sendIntent.setAction(Intent.ACTION_SEND);

Более подробную информацию вы можете найти ниже

http://developer.android.com/reference/android/content/Intent.html

+9
15 мая '15 в 5:35
источник

Согласно их документации:

Intent - это объект, который обеспечивает привязку времени выполнения между отдельными компонентами (например, два действия). Intent представляет приложения, которые "намерены что-то сделать". Вы можете использовать намерения для самых разных задач, но чаще всего они запускали другое действие.

Вот ссылка с примером: 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);
}
+9
18 мар. '13 в 12:46
источник

Цель - абстрактное описание выполняемой операции. Он может использоваться с startActivity для запуска Activity, broadcastIntent для отправки его любым заинтересованным компонентам 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

есть еще много статей.

+8
05 июл. '11 в 4:51
источник

Что такое намерение?

Это своего рода сообщение или информация, передаваемая компонентам. Он используется для запуска активности, отображения веб-страницы, отправки смс, отправки электронной почты и т.д.

В андроиде есть два типа намерений:

Неявное намерение
Явное намерение

Неявное намерение используется для вызова системных компонентов

Пример

Intent i = newIntent(android.content.Intent.ACTION_VIEW,Uri.parse("http://www.amazon.com"));

startActivity(i);

Явное намерение используется для вызова класса активности.

Пример

Intent intent = newIntent (это, SecondActivity.class);

startActivity(intent);

вы можете прочитать больше

http://www.vogella.com/tutorials/AndroidIntent/article.html#intents_overview http://developer.android.com/reference/android/content/Intent.html

+5
25 февр. '15 в 8:10
источник

Чтобы понять намерения, в основном я бы предложил вам пройти через сайт: http://developer.android.com/guide/topics/intents/intents-filters.html

Кроме того, я рассказал о намерениях с примерами в своем личном блоге: http://androiddesk.wordpress.com/2011/12/24/explicit-intent/

http://androiddesk.wordpress.com/2012/01/13/implicit-intent/

Просто посмотрите, если вы считаете, что это будет полезно.

Спасибо

+2
22 февр. '12 в 12:53
источник

Намерение - это намерение выполнить операцию.

Подробно вы можете сослаться

http://developer.android.com/reference/android/content/Intent.html

Кроме того, в моем блоге

http://emergingandroidtech.blogspot.in/2014/11/what-is-intent-in-android.html

Посмотрите, если это вам полезно.

Спасибо.

+2
10 мар. '15 в 8:56
источник

Intent - это класс, который связывает информацию для выполнения некоторых действий.

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

текущая активность.

+2
24 дек. '12 в 15:13
источник

В широком представлении мы можем определить Intent как

Когда одно действие хочет начать другое действие, оно создает объект называемый Intent, который указывает, какую активность он хочет запустить.

+1
02 дек. '15 в 19:56
источник
  • Что такое намерения? Intents - это асинхронные сообщения, которые позволяют компонентам приложений запрашивать функциональность от других компонентов Android. Намерения позволяют взаимодействовать с компонентами из собственного и других приложений. Например, активность может запускать внешнюю активность для съемки.

Намерения - это объекты типа android.content.Intent. Ваш код может отправить их в систему Android, определяющую компоненты, на которые вы нацеливаете. Например, с помощью метода startActivity() вы можете определить, что намерение должно использоваться для запуска активности.

Умысел может содержать данные через Bundle. Эти данные могут использоваться принимающим компонентом.

Запустите действие соединить с

указанный класс

Различные типы намерений enter code here Android поддерживает явные и неявные намерения.

Приложение может определить целевой компонент непосредственно в намерении (явное намерение) или попросить систему Android оценить зарегистрированные компоненты на основе данных о намерениях (неявные намерения).

+1
16 февр. '14 в 16:02
источник

Intents - это асинхронные сообщения, которые позволяют компонентам приложений запрашивать функциональность от других компонентов Android. Intents позволяют вам взаимодействовать с компонентами из одних и тех же приложений, а также с компонентами, предоставленными другими приложениями. Например, активность может запускать внешнюю активность для съемки.

Намерения - это объекты типа android.content.Intent. Ваш код может отправить их в систему Android, определяющую компоненты, на которые вы нацеливаете. Например, с помощью метода startActivity() вы можете определить, что намерение должно использоваться для запуска активности.

Умысел может содержать данные через Bundle. Эти данные могут использоваться принимающим компонентом. Чтобы начать работу, используйте метод startActivity (намерение). Этот метод определен в объекте Context, действие которого продолжается.

+1
23 февр. '15 в 4:24
источник

Из статьи Deep Dive into Android IPC/Binder Framework atAndroid Builders Summit 2013 ссылка

Цель понятна в небольших, но эффективных строках

  • Android поддерживает простую форму IPC (межпроцессное общение) с помощью намерений
  • Intent messaging является основой для асинхронной связи между компонентами Android (активность, сервис, контент-провайдеры, широковещательный приемник).
  • Эти компоненты могут работать в одном и том же приложении или в разных приложениях (например, процессы)
  • Включает как двухточечные, так и публикации доменов обмена подписками
  • Само намерение представляет собой сообщение, содержащее описание выполняемой операции, а также данные, которые должны быть переданы получателю (-ам).

Из этот поток простой ответ архитектора Android Dianne Hackborn утверждает, что он является data container, который он на самом деле есть.

С точки зрения архитектуры Android:

Intent - это контейнер данных, который используется для взаимодействия между процессами. Он построен поверх Binder с точки зрения архитектуры Android.

0
08 апр. '16 в 11:35
источник

Усилия используются для инициирования другого действия из одного действия. Он в основном используется для нескольких целей, таких как отправка данных в другую активность из одного действия и для запуска.

Они в основном двух типов

  • Неявные намерения.

  • Явные намерения.

Как новичок, я знаю это много, я думаю, что это даст некоторое общее представление о намерениях Android.

0
30 мая '16 в 19:48
источник

Приложение Android может содержать ноль или несколько действий. Когда ваше приложение имеет более одного действия, вам часто приходится перемещаться из одного в другое. В Android вы перемещаетесь между действиями через так называемое намерение. Вы можете передать некоторые данные в действие, которое вы хотите начать с помощью намерения, с помощью putExtra().

0
06 февр. '14 в 6:26
источник

В основном он используется для перехода от одной активности к другой. Активность - это не что иное, как окно вашего приложения или вашего устройства Android.

-5
02 дек. '17 в 18:50

Посмотрите другие вопросы по меткам или Задайте вопрос