何时使用PendingIntent?

17

我正在尝试从API中理解PendingIntent的用途。

有时我使用的一些方法需要它,但我仍然没有完全理解它的概念。

是否有人可以解释一下?为什么我不能只使用上下文(Context)呢?

谢谢,

moshik

2个回答

22
一个PendingIntent是一个由粗略操作(启动一个Activity?启动一个Service?发送广播?)、操作细节(以Intent形式)和Context组成的组合。PendingIntent被交给操作系统,在未来某个时刻执行Intent的粗略操作(因此称为“pending”)。Context用于安全性——Android仅使用Context的权限执行PendingIntent,因此PendingIntent不能访问请求它的Context无法访问的内容。

所以如果我理解正确的话,当我想确保访问上下文可以访问的内容时,在普通 Intent 上使用 Pending Intent? - Moshik
当您需要一个方法参数时,可以使用PendingIntent - CommonsWare
一个真实世界的例子会非常有帮助。 - satur9nine
4
一个真实世界的例子是AlarmManager类。它的API只允许你安排PendingIntents而不是常规的Intents。 - Mister Smith
@CommonsWare。PendingIntent 只用于外部应用程序,例如通知吗? - Rohit Singh
@RohitSingh: 是的。我想不出在应用程序中纯粹使用它的地方。没有任何阻止你在应用程序中使用它,但是并不是必要的。 - CommonsWare

4

一个Pending Intent是一个令牌,你可以将其提供给其他应用程序,如通知管理器,以允许该其他应用程序使用你的应用程序的权限来执行预定义的代码片段。

一些活动在一段时间后触发或由某个特定事件调用,因此使用待处理意图。通常待处理意图存储在进程队列中。

普通意图在特定时间使用,但预处理意图在预定时间使用。

例如,闹钟管理器在特定时间调用。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接