Android implicit intents VS explicit intents

Alexander Oleynikov picture Alexander Oleynikov · May 26, 2010 · Viewed 88k times · Source

Working with android I realized that implicit intents are good choice in most of cases due to their's flexibility. But what's about explicit intents? What are benefits of using them? What are common cases when it's a good practice to use them?

Answer

Aditya Kamath picture Aditya Kamath · Nov 11, 2012

Implicit Intents do not directly specify the Android components which should be called, it only specifies action to be performed. A Uri can be used with the implicit intent to specify the data type.

for example

Intent intent = new Intent(ACTION_VIEW,Uri.parse("http://www.google.com"));

this will cause web browser to open a webpage. Android system searches for all components which are registered for the specific action and the data type.If many components are found then the user can select which component to use..

Explicit intents are used in the application itself wherein one activity can switch to other activity...Example Intent intent = new Intent(this,Target.class); this causes switching of activity from current context to the target activity. Explicit Intents can also be used to pass data to other activity using putExtra method and retrieved by target activity by getIntent().getExtras() methods.

Hope this helped.