Tuesday, February 9, 2016

Intent & Intent-Filters

Intent
  • Messaging Object
  • Can be used to request an action from another component.
  • Facilitate communication between components in several ways.
use-cases
  • Start an activity.
  • Start a service.
  • Deliver a broadcast.
Intent Types

  1. Explicit intents: Specify the name by component class name. Can be used only to start a component in your own app.
  2. Implicit intents: Specify the general action to be performed, which allows component from other app to handle it.
If the action is compatible with multiple components, the system displays dialog.

Note: Beginning with Android 5.0 (API level 21), the system throws an exception if you call bindService() with an implicit intent.

Building an Intent
  • Intent object carries information that the Android system uses to determine which component to start.
  1. Component Name: Name of the component, Optional for implicit intent but critical for explicit intent.
  2. Action Name : Specifies the generic action to perform.
  3. Data: The URI (a Uri object) that references the data to be acted on and/or the MIME type of that data
  4. Category: Additional information about the kind of component that should handle the intent
  5. Extras: Key-value pairs that carry additional information required to accomplish the requested action.
  6. Flag: flags instruct the Android system how to launch an activity.
Receiving an Implicit Intent
  • Declare intent filters for each of your app components with an <intent-filter> element in your manifest file.
  • Each intent filter specifies the intent's action, data, and category.
  • The system will deliver an implicit intent to your app component only if the intent can pass through one of your intent filters.
Note: In order to receive implicit intents, you must include the CATEGORY_DEFAULT category in the intent filter. Android automatically applies the the CATEGORY_DEFAULT category to all implicit intents passed to startActivity() and startActivityForResult().

Using a Pending Intent
  • PendingIntent object is a wrapper around an Intent object.
  • Grants permission to other application use the contained Intent as it is executed from your own app process.
Use Case: Notification Manager, Alarm Manager and App Widget executes the intent in app process.

Intent Resolution
- TBU

No comments:

Post a Comment