- Що таке наміри в Android?
- Хтось може детальніше розібратися з прикладом?
- Які існують типи інтенсив і чому ми їх використовуємо?
- Чому в Android такі важливі значення?
Відповіді:
Намір є «намір» виконати дію; іншими словами,
об’єкт обміну повідомленнями, за допомогою якого можна подати запит на дію від іншого компонента програми
В основному наміри - це повідомлення сказати, що ви зробили або хочете, щоб щось сталося. Залежно від наміру програми або ОС можуть прослуховувати його і відповідатимуть відповідно. Подумайте про це як про вибуховий електронний лист до групи друзів, в якому ви говорите своєму другові Джону щось зробити, або друзям, які можуть робити X ( "фільтри намірів" ), робити X. Інші люди ігнорують електронну пошту, але Джон (або друзі, які вміють робити X) на це відреагують.
Для прослуховування наміру трансляції (наприклад, дзвонить телефон або надходить SMS), ви реалізуєте приймач широкомовної передачі , якому буде передано намір. Щоб заявити, що ви можете обробляти інший додаток, наприклад "сфотографувати", ви оголошуєте фільтр намірів у файлі маніфесту додатка .
Якщо ви хочете відмовитись від наміру зробити щось, наприклад, спливати дозвон, ви запускаєте наміри, які говорять, що ви хочете.
В основному наміри - це повідомлення, яке передається між компонентами (такими як Діяльність , Служби, Транслятори та Контент-провайдери ). Отже, це майже еквівалентно параметрам, переданим на виклики API. Принципові відмінності між викликами API та викликом компонентів через наміри:
Звичайно, Intents можна змусити працювати так само, як дзвінки API, використовуючи, що називаються, явні наміри, які будуть пояснені пізніше. Але частіше за все неявні наміри - це шлях, і саме це пояснюється тут.
Один компонент, який хоче викликати інший, повинен лише висловити свій намір виконати роботу. І будь-який інший компонент, який існує і стверджував, що він може виконувати таку роботу через фільтри намірів , викликається платформою Android для виконання цього завдання. Це означає, що жоден з компонентів не знає про існування один одного, але все ще може працювати разом, щоб дати кінцевому користувачеві бажаний результат.
Цей невидимий зв'язок між компонентами досягається за рахунок поєднання намірів, фільтрів намірів та платформи Android.
Це призводить до величезних можливостей, таких як:
Ось додаткові технічні відомості про Інтенти з документації на Android .
Намір - це абстрактний опис операції, яку потрібно виконати. Його можна використовувати з startActivity для запуску Діяльності, BroadIntent для надсилання його будь-яким зацікавленим компонентам BroadcastReceiver , а також для startService (Intent) або bindService (Intent, ServiceConnection, int) для спілкування з фоновою службою.
Намір надає можливість виконувати запізніле прив'язка часу виконання коду в різних програмах. Найбільш вагоме його використання - у запуску заходів, де це можна вважати клеєм між видами діяльності. Це в основному пасивна структура даних, що містить абстрактний опис дії, яку слід виконати. Основними відомостями у намірі є:
- дія Загальна дія, яка повинна бути виконана, наприклад ACTION_VIEW, ACTION_EDIT, ACTION_MAIN тощо.
- дані Дані, з якими можна працювати, наприклад запис особи в базі даних контактів, виражений урі.
Цілі - це спосіб розповісти Android, що ви хочете зробити . Іншими словами, ви описуєте свій намір. Цілі можна використовувати для сигналізації системі Android про те, що сталася певна подія. Інші компоненти в Android можуть зареєструватися до цієї події через фільтр намірів.
Далі наведено 2 типи намірів
використовується для виклику конкретного компонента. Коли ви знаєте, який компонент ви хочете запустити, і ви не хочете надавати користувачеві вільний контроль над тим, який компонент використовувати. Наприклад, у вас є програма, яка має 2 дії. Діяльність A та активність B. Ви хочете запустити активність B із діяльності A. У цьому випадку ви визначаєте явний намір, орієнтований на діяльністьB, а потім використовуєте його для прямого виклику.
використовується, коли у вас є уявлення про те, що ви хочете зробити, але ви не знаєте, який компонент слід запустити. Або якщо ви хочете дати користувачеві можливість вибирати між списком компонентів, які слід використовувати. Якщо ці Інтенти надсилаються до системи Android, вона шукає всі компоненти, які зареєстровані для конкретної дії та типу даних. Якщо знайдено лише один компонент, Android запускає компонент безпосередньо. Наприклад, у вас є програма, яка використовує камеру для фотографування. Однією з особливостей вашої програми є те, що ви даєте користувачеві можливість надсилати зроблені ним фотографії. Ви не знаєте, який саме додаток має користувач, який може надсилати фотографії, а ви також хочете дати користувачеві можливість вибрати, який зовнішній додаток використовувати, якщо він має більше ніж один. У цьому випадку ви б не використовували явного наміру.
Явний намір завжди поставляється до своєї мети, незалежно від того, що вона містить; фільтр не проводиться. Але неявний намір постачається компоненту лише в тому випадку, якщо він може пройти через один з фільтрів компонента
Якщо інтенсив буде надіслано до системи Android, він визначить відповідні програми для цієї програми. Якщо для цього типу інтентів було зареєстровано кілька компонентів, Android пропонує користувачеві вибір відкрити один з них.
Це визначення засноване на IntentFilters. IntentFilters визначає типи намірів, на які може реагувати приймач активності, послуги або прийом трансляцій. Фільтр намірів оголошує можливості компонента. Він визначає, що може робити анатичність чи послуга та які типи трансляцій приймач може обробляти. Це дозволяє відповідному компоненту отримувати Інтенти заявленого типу. IntentFilters зазвичай визначається через файл AndroidManifest.xml. Для BroadcastReceiver також можна визначити їх у кодуванні. IntentFilters визначається його категорією, дією та фільтрами даних. Він також може містити додаткові метадані.
Якщо компонент не визначає фільтр намірів, його можна викликати лише явними намірами.
Далі наведено два способи визначення фільтра
Якщо ви визначаєте фільтр намірів у маніфесті, вашій програмі не потрібно запускатись, щоб реагувати на наміри, визначені в її фільтрі. Android реєструє фільтр після встановлення вашої програми.
Якщо ви хочете, щоб ваш приймач радіомовлення отримав наміри лише тоді, коли ваша програма працює. Тоді слід визначити свій фільтр намірів під час виконання програми (програмно). Майте на увазі, що це працює лише для радіоприймачів.
Після написання однієї діяльності виникає необхідність переходу до іншої діяльності для виконання іншого завдання з або без інформації з першого заняття.
Платформа Android дозволяє здійснювати перехід за допомогою Intent Interface.
Слова взяті звідси: Використовуючи Intent Demo, і я пропоную вам пройти цей приклад, оскільки вони також надали файл коду. тож ви можете ним скористатися і легко зрозуміти те саме.
Намір Android дозволяє переходити від однієї активності до Android на іншу. З прикладами цей підручник також розповідає про різні типи намірів Android.
Намір Android можна визначити як прості об’єкти повідомлень, які використовуються для спілкування від 1 діяльності до іншої.
Цілі визначають намір програми. Вони також використовуються для передачі даних між видами діяльності.
Намір Android можна використовувати для виконання наступних 3 завдань:
Намір можна широко класифікувати на 2 категорії. Для цієї категорії немає ключових слів, а лише широка класифікація способів використання андроїдських намірів.
Явний намір 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 для запуску Діяльності, 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
Є ще багато статей.
що таке наміри?
Це свого роду повідомлення або інформація, яка передається компонентам. Він використовується для запуску діяльності, показу веб-сторінки, надсилання sms, надсилання електронної пошти тощо.
У Android існує два типи намірів:
Неявний намір
Явний намір
Неявний намір використовується для виклику системних компонентів
Приклад
Intent i = newIntent(android.content.Intent.ACTION_VIEW,Uri.parse(“http://www.amazon.com”));
startActivity(i);
Явний намір використовується для виклику класу діяльності.
Приклад
Намір наміру = newIntent (це, SecondActivity.class);
startActivity(intent);
ви можете прочитати більше
http://www.vogella.com/tutorials/AndroidIntent/article.html#intents_overview http://developer.android.com/reference/android/content/Intent.html
У широкому розумінні ми можемо визначити Намір як
Коли одна активність хоче розпочати іншу діяльність, вона створює Об'єкт під назвою "Намір", який вказує, яку діяльність він хоче запустити.
Додаток для Android може містити нуль або більше заходів. Коли у вашій програмі є більше ніж одна діяльність, вам часто потрібно переходити від одного до іншого. В Android ви переходите між діями через те, що відомо як намір. Ви можете передати деякі дані діяльності, яку ви хочете почати за допомогою наміру, використовуючи putExtra ().
З паперового Deep Dive into Android IPC/Binder Framework atAndroid Builders Summit 2013
посилання
Намір розуміється в деяких невеликих, але ефективних рядках
З цієї нитки проста відповідь архітектора на андроїд Діанні Хакборн заявляє, data container
що вона є насправді.
З точки зору архітектури Android :
Намір - це контейнер даних, який використовується для міжпроцесорного зв'язку. Він побудований поверх Binder
точки зору архітектури Android.
Цілі використовуються для ініціювання іншої діяльності з однієї діяльності. В основному вона використовується для декількох цілей, таких як передача даних в іншу діяльність з однієї діяльності та для ініціювання цілей.
Вони в основному бувають двох типів
Неявні наміри.
Явні наміри.
Як початківець я це знаю дуже багато, думаю, це дасть базове уявлення про наміри андроїда