suggest change


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.



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
} 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.

Feedback about page:

Optional: your email if you want me to get back to you:

Table Of Contents