Android Intent

Help us to keep this website almost Ad Free! It takes only 10 seconds of your time:
> Step 1: Go view our video on YouTube: EF Core Bulk Extensions
> Step 2: And Like the video. BONUS: You can also share it!

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

ParameterDetails
intentThe intent to start
requestCodeUnique number to identify the request
optionsAdditional options for how the Activity should be started
nameThe name of the extra data
valueThe value of the extra data
CHOOSE_CONTACT_REQUEST_CODEthe code of the request, to identify it on onActivityResult method
actionAny action to perform via this intent, ex: Intent.ACTION_VIEW
uridata uri to be used by intent to perform specified action
packageContextContext to use to initialize the Intent
clsClass to be used by this intent

Remarks

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.



Got any Android Question?