2014-01-12 3 views
0

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

+1

@Amaterasu Я просто хочу понять, почему намерения используются или когда они должны использоваться. – Ramilol

+0

@Amaterasu Я не согласен. Могут быть некоторые хорошие факты о том, почему один способ сделать что-то лучше другого. –

ответ

3

Намерения широко используются в android для перехода от одной активности к другой. это хорошая практика для использования намерений. Используя намерения, мы можем передавать/отправлять значения из одной активности в другую. Поэтому его можно использовать в качестве механизма передачи значений. Также его синтаксис очень прост. И зачем думать о потоках?

+0

Я просто больше знаком с темами, начиная с разных языков. – Ramilol

0

, в то время как у меня нет примера, намерения ослабляют компоненты соединения. Это отрицает необходимость создания собственных шаблонов проектирования Observer и позволяет осуществлять связь Inter/Intra-Application.

1

Почему бы просто не использовать новую тему или просто вызвать функцию?

Независимо от того, что Thread вы используете, все еще не должны были бы быть механизм, чтобы направить сообщение, которое какая Intent делает. Это способ отправить сообщение. Теперь его нужно вызвать на UI Thread или передать соответствующий Context, потому что ему необходимо отправить сообщение. Вызовите, какую функцию? Вы. Он вызывает конструктор класса Intent.

Простой код, показывающий, почему намерения лучше или когда нужны, было бы здорово!

У меня нет простого кода для сравнения, потому что я не уверен, что вы хотите видеть. Никто не говорит, что это лучше, чем что-то другое. А почему Intents используются против чего-то еще? Я не знаю ... вам придется спросить разработчиков платформы Android. Это то, что они решили использовать.

Когда они необходимы, вы должны передать сообщение от одного Activity другому или из одного приложения в другое. Из документации

намерение представляет собой абстрактное описание операции должны быть выполнены

Я сказал «сообщение», но документы говорят «описание операции должны выполняться» (я предполагаю, что может означать тоже самое). Вы можете использовать их для запуска Activity, передачи данных между Activities и т. Д., Таких как указание ОС, что делать во время загрузки. Почему это лучше? Лучше чем? Это то, что разработчики решили использовать, поэтому, я думаю, вы должны были бы спросить их, но, возможно, они не думали, что это было бы лучше.

+0

Я понимаю, что вам нужно, чтобы они связывались между приложениями, но зачем их использовать, когда вы не общаетесь с другими приложениями. Что вы подразумеваете под сообщением? примеры сообщений? – Ramilol

+0

Все 'намерения' отправляют сообщение. При запуске 'Activity' вы вставляете конструктор,« начинайте этот класс ». Или вы отправляете сообщение с надписью «Intent»: «Я хочу открыть камеру». Затем, когда вы используете его где-то, как в 'startActivity', тогда и только тогда вы завершаете действие. – codeMagic

2

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

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

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

Следующий код демонстрирует, как вы можете начать другое действие с помощью намерения.

# Start the activity connect to the 
# specified class 

Intent i = new Intent(this, ActivityTwo.class); 
startActivity(i); 
Смежные вопросы