From the documentation for Android:
Explicit intentions define the component to run by name (fully qualified class name). Typically, you will use the explicit intention to run the component in your own application, because you know the class name about the activity or service that you want to start. For example, start a new one in response to a user action or start a service to download a file in the background.
Implicit intentions do not name a specific component, but instead declare a general action to execute that allows a component from another application to handle it. For example, if you want to show the user a location on a map, you can use the implicit intent to request that another capable application display the specified location on the map.
Explicit intentions, as you said, are used to start activity in your application - or to move from one “screen” to another. An explicit intention would be something like Intent intent = new Intent(currentContext, ActivityB.class); These types of intentions are used when you are in your application, and you clearly know which component you want to run, depending on how the user interacts with your activity.
Implicit Intents does not directly indicate the Android components that should be called, but simply indicate the general action that needs to be performed. They are usually used when you want some external application to do something for you. An example of an implicit intent used to send email using an external application would be:
Intent i = new Intent(Intent.ACTION_SEND); i.setType("message/rfc822"); i.putExtra(Intent.EXTRA_EMAIL , new String[]{" someemail@gmail.com "}); i.putExtra(Intent.EXTRA_SUBJECT, "subject"); i.putExtra(Intent.EXTRA_TEXT , "body");
This intention will request applications installed on the device that can handle sending emails, but there may be quite a few applications that can do this - for example, if we have a gmail application, a hotmail application, etc., basically you just specify the general action and ask the system "who can handle this", and the system will process the rest. These types of intentions are used by application developers, so they don’t need to “reinvent the wheel” if the device already has something that can do what the developer wants to do.
Here are some links that could help you do better:
http://developer.android.com/guide/components/intents-filters.html
http://www.vogella.com/articles/AndroidIntent/article.html