什么是Android PendingIntent?
我是Android的新手。 我阅读了Android文档,但我仍然需要更多的解释。 任何人都可以告诉我PendingIntent
究竟是什么?
PendingIntent
是您向外部应用程序(例如NotificationManager
, AlarmManager
,主屏幕AppWidgetManager
或其他第三方应用程序)提供的令牌,它允许外部应用程序使用您的应用程序的权限执行预定义的代码片段 。
如果您将外部应用程序设为Intent,它将使用自己的权限执行您的Intent
。 但是,如果您将外部应用程序设置为PendingIntent
,则该应用程序将使用您的应用程序的许可执行您的Intent
。
意图
Intents是Android中的标准消息传递机制,表达用户执行某些工作的意图。 它们允许您与其他由您或Android操作系统定义的组件进行交互。
示例广播
拨打一个电话号码或接听电话
它们以两种方式使用
1)由你来调用一个组件
2)由系统通知你一些事件。
创建意图的逻辑流程通常如下:
现实生活中的例子:比方说,我早上起床,然后“ 打算 ”去洗手间。 我首先必须考虑去洗手间,但那不会让我进入洗手间。 然后,我必须告诉我的大脑首先起床,然后走到洗手间,然后放开,然后去洗手,然后去擦手。 一旦我知道我要去哪里,我发送命令开始,我的身体采取行动。
的PendingIntent
PendingIntent
指定将来采取的操作。 它允许您将未来的Intent传递给另一个应用程序,并允许该应用程序执行该Intent,就像它具有same permissions as your application
,无论您的应用程序是否仍然在最终被Intent调用时仍在其中。这是您允许外国应用程序允许外国应用程序使用您的应用程序的权限执行预定义的一段代码。
通过将PendingIntent
给另一个应用程序,您授予它执行您指定的操作的权限,就好像另一个应用程序是您自己的一样(具有相同的权限和标识)。 因此, you should be careful about how you build the
PendingIntent
:例如,您提供的基本Intent将显式地将组件名称设置为您自己的组件之一,以确保它最终发送到那里和其他地方。
这是您想要执行的意图操作,但在稍后的时间。 想一想将意图放在冰上。 它需要的原因是因为必须从应用程序中的有效Context
创建和启动Intent,但是在某些情况下,当您想要运行该操作时某个操作不可用,因为技术上它在应用程序的上下文之外两个常见的示例是从Notification或BroadcastReceiver
启动一个Activity。通过创建一个PendingIntent
您可以使用它来启动(例如,一个Activity),同时让Context
(从另一个Activity或Service中)
从现实生活中的例子中继续:比方说,我想洗澡,但是我想刷牙后吃早餐,然后淋浴。 所以我知道我不会在至少30-40分钟之前洗澡。 我仍然在脑海中想要准备好自己的衣服,然后走上楼梯回浴室,然后脱衣服,然后淋浴。 然而,这将不会发生,直到30-40分钟过去。 我现在有一个待办淋浴的意图。 这是等待30-40分钟。
这与Pending Intent和Regular Intent之间的区别非常相似。 简而言之:
定期意图 - > DOES NOT REQUIRE PENDING INTENT TO BE MADE
待定意图 - > REQUIRES A REGULAR INTENT TO BE CREATED
意图有两种类型 - 显式和隐式
显式意图 :当您的应用程序知道要调用哪个组件来执行某些操作时
隐含意图 :当您的应用程序不知道哪个组件可以准确执行您想要的操作时。 对于Ex,如果你只是说你想显示一个URL,那么系统决定哪个组件会满足这个意图。
关于意图的更好和清晰的想法。 链接下的Vist
Pending Intent是一种令牌,用于代表应用程序执行某个操作,而不管应用程序是否处于活动状态。
我认为文档足够详细:待定意向文档。
只需考虑Pending Intents的使用案例,如(广播意图,调度警报)并且文档将变得更加清晰和有意义。
链接地址: http://www.djcxy.com/p/16225.html