Introduction
An Intent is a small message passed around the Android system. This message may hold information about our intention to perform a task.
It is basically a passive data structure holding an abstract description of an action to be performed.
Syntax
- Intent Intent()
- Intent Intent(Intent intent)
- Intent Intent(String action)
- Intent Intent(String action, Uri uri)
- Intent Intent(Context packageContext, Class<?> cls)
- Intent Intent(String action, Uri uri, Context packageContext, Class<?> cls)
- void startActivity(Intent intent)
- void startActivity(Intent intent, Bundle options)
- void startActivityForResult (Intent intent, int requestCode)
- void startActivityForResult (Intent intent, int requestCode, Bundle options)
- Intent putExtra(String name, double[] value)
- Intent putExtra(String name, int value)
- Intent putExtra(String name, CharSequence value)
- Intent putExtra(String name, char value)
- Intent putExtra(String name, Bundle value)
- Intent putExtra(String name, Parcelable[] value)
- Intent putExtra(String name, Serializable value)
- Intent putExtra(String name, int[] value)
- Intent putExtra(String name, float value)
- Intent putExtra(String name, byte[] value)
- Intent putExtra(String name, long[] value)
- Intent putExtra(String name, Parcelable value)
- Intent putExtra(String name, float[] value)
- Intent putExtra(String name, long value)
- Intent putExtra(String name, String[] value)
- Intent putExtra(String name, boolean value)
- Intent putExtra(String name, boolean[] value)
- Intent putExtra(String name, short value)
- Intent putExtra(String name, double value)
- Intent putExtra(String name, short[] value)
- Intent putExtra(String name, String value)
- Intent putExtra(String name, byte value)
- Intent putExtra(String name, char[] value)
- Intent putExtra(String name, CharSequence[] value)
Parameters
Parameter | Details |
---|
intent | The intent to start |
requestCode | Unique number to identify the request |
options | Additional options for how the Activity should be started |
name | The name of the extra data |
value | The value of the extra data |
CHOOSE_CONTACT_REQUEST_CODE | the code of the request, to identify it on onActivityResult method |
action | Any action to perform via this intent, ex: Intent.ACTION_VIEW |
uri | data uri to be used by intent to perform specified action |
packageContext | Context to use to initialize the Intent |
cls | Class to be used by this intent |
Caveats of using implicit intent
When calling a implicit intent it's always helpful to check if it's possible by the system to handle it.
This can be done by checking using PackageManager.queryIntentActivities(Intent intent, int flags)
PackageManager pm = getActivity().getPackageManager();
if (intent.resolveActivity(pm) != null) {
//intent can be handled
startActivity(intent);
} else {
//intent can not be handled
}
Starting Activity which is a singleTask
or singleTop
When the activity's launch mode is singleTask
or singleTop
, the onActivityResult
will be called as soon as the activity is started with a data null. To prevent this, use Intent.setFlags(0)
to reset the default flags.