Намір
Намір Android - це об’єкт, що несе за собою намір, тобто повідомлення від одного компонента до іншого компонента, що знаходиться всередині програми або поза нею. Наміри можуть обмінюватися повідомленнями з будь-яким із трьох основних компонентів програми - Діяльність, Послуги та Приймачі трансляції.
Сам намір, об'єкт Intent, є пасивною структурою даних. Він містить абстрактний опис операції, яку потрібно виконати.
Наприклад: скажімо, у вас є Activity, яка повинна запустити поштовий клієнт і надіслати електронне повідомлення. Для цього Ваша Діяльність надсилає Намір з дією ACTION_SEND
, разом із відповідним вибором, на Android Intent Resolver:
Intent intent = new Intent(Intent.ACTION_SENDTO);
intent.setData(Uri.parse("mailto:")); // only email apps should handle this
Вказаний засіб вибору надає належний інтерфейс для вибору користувачем способу надсилання даних електронної пошти.
ВИРАЗНІ НАМІРИ
// Explicit Intent by specifying its class name
Intent i = new Intent(this, TargetActivity.class);
i.putExtra("Key1", "ABC");
i.putExtra("Key2", "123");
// Starts TargetActivity
startActivity(i);
ІМПЛІЦІТНІ НАМЕРИ
// Implicit Intent by specifying a URI
Intent i = new Intent(Intent.ACTION_VIEW,
Uri.parse("http://www.example.com"));
// Starts Implicit Activity
startActivity(i);
Очікує намір
PendingIntent - це маркер, який ви надаєте іноземній програмі (наприклад, NotificationManager, AlarmManager, Home Screen AppWidgetManager або інші сторонні програми), що дозволяє іноземній програмі використовувати дозволи вашої програми для виконання заздалегідь визначеного фрагмента коду.
Надаючи PendingIntent іншій програмі, ви надаєте їй право виконувати вказану вами операцію, ніби інша програма була вами (з тими самими дозволами та ідентифікацією). Таким чином, ви повинні бути обережними щодо того, як ви будуєте PendingIntent: майже завжди, наприклад, базовий Intent, який ви постачаєте, повинен мати ім'я компонента, явно встановлене на один із ваших власних компонентів, щоб переконатися, що воно в кінцевому підсумку надсилається туди і нікуди більше.
Приклад очікуваного наміру: http://android-pending-intent.blogspot.in/
Джерело: Android Intents та Android Pending Intents
Сподіваюся, це допомагає.