Intent Routing
As previously noted, if you specify the target component in your intent, Android has no doubt where the intent is supposed to be routed to – it will launch the named activity. This might be OK if the target intent is in your application. It definitely is not recommended for sending intents to other applications. Component names, by and large, are considered private to the application and are subject to change. Content templates and MIME types are the preferred ways of identifying services you wish third‑party code to supply.
If you do not specify the target component, then Android has to figure out what activities (or other intent receivers) are eligible to receive the intent. Note the use of the plural “activities”, as a broadly‑written intent might well resolve to several activities. That is the… ummm… intent (pardon the pun), as you will see later in this chapter. This routing approach is referred to as implicit routing.
Basically, there are three rules, all of which must be true for a given activity to be eligible for a given intent:
1. The activity must support the specified action.
2. The activity must support the stated MIME type (if supplied).
3. The activity must support all of the categories named in the intent.
The upshot is that you want to make your intents specific enough to find the right receiver(s), and no more specific than that.
This will become clearer as we work through some examples later in this chapter.
Дата добавления: 2015-05-16; просмотров: 702;