Может ли кто-нибудь объяснить мне разницу между "Activity" и "Intent" на платформе Android?
Какая разница между действиями и намерениями в Android?
Ответ 1
В очень простом языке Activity
- это ваш пользовательский интерфейс и все, что вы можете сделать с помощью пользовательского интерфейса. Когда вы переходите из одного пользовательского интерфейса, вам нужно запустить этот новый пользовательский интерфейс с помощью Intent
. Intent
- это ваше событие, которое передается вместе с данными из первого пользовательского интерфейса в другой.
Намерения могут использоваться и между пользовательскими интерфейсами и фоновыми службами. Также передается Intent
, когда вы хотите передавать данные во все действия и фоновые службы.
Intent
живет как объект, деятельность живет с лицом и взаимодействием. Надеюсь, что это было полезно.
Ответ 2
Существующие ответы прекрасны, но вот действительно базовое определение двух с некоторыми ссылками.
Приложение component для отображения пользовательского интерфейса. Класс активности - это взаимодействие всех пользовательских взаимодействий (нажатия кнопок, выбор списка). Действие указывает макет, который будет отображаться на экране.
Умысел - это системное сообщение. Это может быть broadcast вокруг системы для уведомления других приложений (или ваших собственных!) О событии или их можно использовать для запроса того, чтобы система отображала новую деятельность.
Ответ 3
Если все, что вы знаете о намерениях, это когда вы используете их для начала нового действия, я могу понять ваше замешательство.
В простейшем случае вы начинаете новое действие следующим образом:
Intent intent = new Intent(this, SomeOtherActivity.class);
startActivity(intent);
Похоже, вы начинаете свою деятельность, а активность, которую вы начинаете, "намерена". Но то, что вы действительно делаете, вызывает метод startActivity()
, и вы передаете ему контейнер, называемый "намерение". Этот контейнер сообщает startActivity()
, что делать.
Вы можете видеть это более четко, когда вы передаете данные в новую активность.
Intent intent = new Intent(this, SomeOtherActivity.class);
startActivity(intent);
intent.putExtra("ANIMAL_TYPE", "unicorn");
intent.putExtra("ANIMAL_COLOR", "ruby");
startActivity(intent);
Теперь, когда вы вызываете startActivity()
, он смотрит на намерение и знает, что ему нужно запустить класс SomeOtherActivity
. Кроме того, в классе SomeOtherActivity
вы можете получить доступ к этим переданным парам ключ/значение из этого намерения следующим образом:
Bundle extras = getIntent().getExtras();
if(extras !=null) {
String animal = extras.getString("ANIMAL_TYPE");
String animalColor = extras.getString("ANIMAL_COLOR");
}
Ответ 4
Это разные классы, которые никак не могут быть изменены. Ожидаемое использование подклассов Activity
- это управление содержимым и поведением окна приложения. Intent
s, с другой стороны, являются простыми структурами обмена данными, которые часто используются для запуска новых Activity
'es и передачи данных к ним, но они также имеют и другие виды использования.
Ответ 5
Класс Activity заботится о создании окна (полноэкранного или плавающего) для вас, в котором вы можете поместить свои пользовательские интерфейсы, чтобы действия взаимодействовали с пользователем.
Усилия в основном используются, когда вы хотите переключиться с одного вида (например, на одно действие) на другое.
Когда вы в данный момент находитесь в ActivityOne.class, и вы вызываете:
Intent i = new Intent(this, ActivityTwo.class);
startActivity(i);
то ActivityTwo будет отображаться пользователю.
Ответ 6
Деятельность: Это как веб-страница, например. домой, контакт. Он содержит всю пользовательскую часть приложения.
Намерение: Вы можете думать о Намерении как о способе открыть другое действие. Это в основном помогает открыть новую деятельность вместе с данными из предыдущей деятельности.
Ответ 7
Хотя здесь есть много хороших объяснений, я хотел бы высказать свое собственное мнение в отношении Activity
и Intent
. Activity
- это компонент пользовательского интерфейса, который вы видите на своем экране. Intent
- это объект сообщения, который используется для запроса действия от того же/другого компонента приложения.
Ссылка: Намерение, Деятельность
Ответ 8
Мероприятия: Деятельность - это компонент, который вы видите на экране, с некоторой связанной логикой для управления жизненным циклом и навигацией. Приложение будет состоять из нескольких действий. При переходе с экрана на экран, как правило, вы меняете действия, заменяя то, что на экране, новым содержимым и контроллером. ПРОВЕРЬТЕ ЦИКЛ ЖИЗНИ ДЕЯТЕЛЬНОСТИ
Содержание: навигация между действиями управляется Intents. Intent - это тип сообщения, которое приложения передают через Android OS заинтересованным лицам по телефону.