An Intent in the Android operating system is a software mechanism that allows users to coordinate the functions of different activities to achieve a task. An Intent is a messaging object[1] which provides a facility for performing late runtime binding between the code in different applications in the Android development environment. Its most significant use is in the launching of activities, where it can be thought of as the glue between activities: Intents provide an inter-application messaging system that encourages collaboration and component reuse.[2]
An Intent is basically a passive data structure holding an abstract description of an action to be performed.[3] For Dummies likens an Intent to flicking a switch: "Your intent is to turn on the light, and to do so, you perform the action of flipping the switch to the On position."[4]
The concept was created as a way to allow developers to easily remix different apps and allow each type of task (called activity) to be handled by the application best suited to it, even if provided by a third party. Although the concept was not new, the Android architecture doesn't require elevated privileges to access the components, which makes it an open platform.[5]
Activities in Android are defined as classes that control the life cycle of a task in the user interface. The activities supported by an application are declared in a manifest, so that other applications can read what activities are supported. Intents in one application can start particular activities in a different application, if the latter supports the message type of the Intent.[6]
An analysis in 2011 by researchers from The University of California at Berkeley found that Intents can pose a security risk, allowing attackers to read content in messages and to insert malicious messages between applications. [2]