
Intent的主要功能是表示用户的一种操作意图,当用户使用Intent之后则立刻执行用户所需要的操作,但是在Android之中也提供了一个PendingIntent操作,表示的是将要发生的操作,所谓的将要发生的Intent指的是在当前的Activity不立即使用此Intent进行处理,而将此Intent封装后传递给其他的Activity程序,而其他的Activity程序在需要使用此Intent时才进行操作。

No. 方法及常量 类型 描述
1 public static final int FLAG_CANCEL_CURRENT 常量 重新生成一个新的PendingIntent对象
2 public static final int FLAG_NO_CREATE 常量 如果不存在PendingIntent对象,则创建一个新的
3 public static final int FLAG_ONE_SHOT 常量 创建的PendingIntent对象只使用一次
4 public static final int FLAG_UPDATE_CURRENT 常量 如果PendintIntent对象已经存在,则直接使用,并且实例化一个新的Intent对象.
5 public static PendingIntent getActivity(Context context, int requestCode, Intent intent, int flags) 普通 通过PendingIntent启动一个新的Activity.
6 public static PendingIntent getBroadcast(Context context, int requestCode, Intent intent, int flags) 普通 通过PendingIntent启动一个新的Broadcast7 public static PendingIntent getService(Context context, int requestCode, Intent intent, int flags) 普通 通过PendingIntent启动一个新的Service。
pendingIntent字面意义:等待的,未决定的Intent。要得到一个pendingIntent对象,使用方法类的静态方法 getActivity(Context, int, Intent, int), getBroadcast(Context, int, Intent, int), getService(Context, int, Intent, int) 分别对应着Intent的3个行为,跳转到一个activity组件、打开一个广播组件和打开一个服务组件。参数有4个,比较重要的事第三个和第一个,其次是第四个和第二个。可以看到,要得到这个对象,必须传入一个Intent作为参数,必须有context作为参数。
pendingIntent是一种特殊的Intent。主要的区别在于Intent的执行立刻的,而pendingIntent的执行不是立刻的。pendingIntent执行的操作实质上是参数传进来的Intent的操作,
但是使用pendingIntent的目的在于它所包含的Intent的操作的执行是需要满足某些条件的。主要的使用的地方和例子:通知Notificatio的发送,短消息SmsManager的发送和警报器AlarmManager的执行等等。Android的状态栏通知(Notification)如果需要查看消息,可以拖动状态栏到屏幕下方即可查看消息。步骤:1 获取通知管理器NotificationManager,它也是一个系统服务2 建立通知Notification notification = new Notification(icon, null, when);3 为新通知设置参数(比如声音,震动,灯光闪烁)4 把新通知添加到通知管理器。

