2010-04-07 3 views
7

Я действительно не понимаю, как использовать и концепцию намерения. Я понимаю, что деятельность - это один визуальный интерфейс и одна попытка, в которой пользователь может участвовать. Я ДУМАЮ, что намерение используется для запуска и общения между различными действиями. Если да, то как бы вы это сделали? Образец кода был бы полезен. В аналогии, попробуйте сравнить намерение с чем-то в повседневной жизни. Это очень поможет!Концепция намерения в Android?

+1

Это похоже на событие, как упрощение. –

ответ

5

Intent может использоваться для запуска действий, предоставления действий и некоторых данных. Пример использования Intent действия для просмотра веб-страницы:

Intent myIntent = new Intent(Intent.VIEW_ACTION, 
        Uri.parse("http://www.google.com")); 

Если действие Intent.VIEW_ACTION и строка данных является Uri веб-сайта Google.

Common Tasks and How To Do Them in Android

Я попытался, но его трудно сравнить с чем-то Intent в повседневной жизни. Если я придумаю что-нибудь, я напишу его с моим ответом.

0

Вы были правы, заявляя, что это должно начаться и общаться между приложениями.

http://developer.android.com/guide/topics/fundamentals.html

То есть основы намерений. Вам нужно использовать .startActivityForResult(), а не startActivity(), если вы хотите получить возвращаемое значение, и иметь метод void onActivityResult (намерение намерения), чтобы действовать как слушатель, когда возвращается значение.

Конструктор занимает 2 части. Первый - это int, который будет константой в классе Intent, чтобы сообщить системе, что вы хотите делать с данными. Второй - это URI для передачи данных между действиями. Затем система использует их для определения того, какое приложение должно быть передано, когда вы помещаете его в запрос активности. Что касается вашей аналогии, я не знаю, это сложно, на самом деле ничего подобного не очень. Я думаю, что самое близкое, что вы получите, это что-то передать вашему боссу и сказать ему, что вам нужно, чтобы кто-то еще что-то сделал с этим, что вы не можете.

6

процитировать API docs, Intent в основном пассивной структуры данных проведение абстрактное описание действие, которое должно быть выполнено, с двумя основными частями информации, действий и данных.

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

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

Для получения дополнительной информации см. Intents and Intent Filters, Intent или Playing with Intents.

Я также рекомендую книгу Pro Android, которая подробно изложена в этих подробностях API. Существует более новая версия Pro Android 2 (не прочитал ее).

Если вы ищете Google Books for it, вы можете ознакомиться с выдержками из книги, см. Главу 3 «Использование ресурсов, поставщиков контента и намерений» для получения дополнительной информации.

1

Целью является, по существу, способ подачи заявки на объявление. Они работают вместе с IntentFilters, которые в основном представляют собой объявления о возможностях того, что другое действие или услуга может сделать для тех, кому это необходимо.

Предполагается, что намерения состоят из двух частей типа информации и компонента данных, который обычно является URI (подумайте о веб-сайте, GPS-данных или контакте для набора номера).

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

API Android подробно описывает, как создавать собственные IntentFilters и Receivers. Посмотрите там для получения дополнительной информации.

1

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

3

Я нахожу идеи довольно знакомыми, особенно с некоторым опытом интеграции приложений. Намерения - это в основном сообщения, а пара намерений/действий Android - это message based architecture с использованием асинхронных сообщений с однократной и многокаскадной гарантией доставки (я считаю), но никаких гарантий при заказе.

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

0

Application Fundamentals в Руководстве по Dev определяет намерения как «асинхронные сообщения».

Возможно, чтобы лучше понять их отличие от «сообщений», их можно сравнить с сообщениями WM_COMMAND в мире Microsoft Windows, поскольку по определению они должны запускать действие (а не только передавать информацию).

1

Простой пример в реальном мире в соответствии с моим пониманием, Традиционный способ отправки сообщений, т. Е. Почтовые услуги, у вас есть письмо с подписью отправителя и получателя на обложке (обложка и штампы можно рассматривать как контекст - если я не ошибаюсь), а фактическое письмо внутри можно рассматривать как данные, в целом общее письмо (обложка + фактические буквенные данные), которое несет почтальон, является намеренным, а почтальон - ОС:) Надеясь, что это дает некоторую идею.

Смежные вопросы