PendingIntent 是某个不确定的时刻发生的意图, 而Intent 是立刻发生。PendingIntent 典型的应用场景是给 RemoteViews 添加单击事件, 因为RemoteViews 运行在远程进程中, 因此 RemoteViews 不同于普通的View, 所以无法直接通过 setOnClickListener 方法来设置单击事件。 PendingIntent 通过send 和 cancel 方法来发生和取消待定的 Intent.
PendingIntent 支持三种待定意图: 启动Activity、 Service、 和发送广播, 对应有3个接口方法。
static PendingIntent |
getActivity(Context context, int requestCode, Intent intent, int flags)
获得一个PendingIntent, 该待定意图发生时, 效果相当于Context.startActivity(Intent)
static PendingIntent
getService(Context context, int requestCode, Intent intent, int flags)
获得一个PendingIntent, 该待定意图发生时, 效果相当于Context.startService(Intent)
static PendingIntent
getBroadcast(Context context, int requestCode, Intent intent, int flags)
获得一个PendingIntent, 该待定意图发生时, 效果相当于Context.sendBroadcast(Intent)