意图
Android Intent是一个承载Intent的对象,即从一个组件到应用程序内部或外部的另一个组件的消息。意图可以在应用程序的三个核心组件(活动,服务和广播接收器)之间传递消息。
意图本身(一个意图对象)是一个被动数据结构。它包含要执行的操作的抽象描述。
例如:假设您有一个活动,需要启动电子邮件客户端并发送电子邮件。为此,您的Activity会将带有action的Intent ACTION_SEND
以及适当的选择器发送到Android Intent Resolver:
Intent intent = new Intent(Intent.ACTION_SENDTO);
intent.setData(Uri.parse("mailto:")); // only email apps should handle this
指定的选择器为用户提供了正确的界面,供用户选择如何发送电子邮件数据。
明确意图
// Explicit Intent by specifying its class name
Intent i = new Intent(this, TargetActivity.class);
i.putExtra("Key1", "ABC");
i.putExtra("Key2", "123");
// Starts TargetActivity
startActivity(i);
隐含意图
// Implicit Intent by specifying a URI
Intent i = new Intent(Intent.ACTION_VIEW,
Uri.parse("http://www.example.com"));
// Starts Implicit Activity
startActivity(i);
待定意向
PendingIntent是您提供给外部应用程序(例如NotificationManager,AlarmManager,主屏幕AppWidgetManager或其他第三方应用程序)的令牌,它允许外部应用程序使用您的应用程序的权限来执行预定义的代码。
通过将PendingIntent赋予另一个应用程序,即授予它执行指定的操作的权限,就好像另一个应用程序是您自己一样(具有相同的权限和身份)。因此,您应该注意如何构建PendingIntent:例如,几乎总是,您提供的基本Intent应该将组件名称显式设置为您自己的组件之一,以确保最终将其发送到那里。
待定意图示例:http : //android-pending-intent.blogspot.in/
来源:Android Intent和Android Pending Intent
希望这可以帮助。