Gus*_*dor 5 android android-pendingintent
这是一个相当陈旧的问题,但坦率地说,我还没有找到满足我好奇心的方式回答.
在您之前,亲爱的读者,跳到android开发人员参考以粘贴我的文本,请注意我已经阅读了Intent/Pending Intent文档,但我还没有解决我的困惑.
让我觉得Intent模型是android系统的核心,因此非常通用.正因为如此,我所看到的其使用的例子往往是多种多样的.这种变化模糊了我想要学习的概念,这令人沮丧.
我的问题写得很简单,但也许很难以简单的方式解释.我理解,意图是对其他活动的信息,其他活动可以宣告他们对其清单的兴趣.待定意图,意图包装,让我感到困惑.
我意识到这些是非常新的问题(我是),但我非常想要理解这些核心概念,所以我不必依赖示例/指南/官方文档.
任何反馈都是受欢迎的人.谢谢.
PendingIntent 的主要目的是向另一个应用程序授予代替您执行某些操作的书面许可。应用程序的行为受到以下两个因素的限制:
现在,对于待处理的意图,如果具有执行某些操作所需的权限和可见性的应用程序明确允许您代替她执行该操作,您就可以克服这两个限制。例如,应用程序可以允许您调用她的私有活动之一,如果它为您提供了一个包含所述活动的显式意图的待处理意图。
[编辑] 例如,它们与警报管理器一起使用。它通过给出(待定)意图来告诉警报管理器该做什么以及何时做什么。由于当时间到达时您的应用程序可能不再存在,因此警报管理器必须为您发送它。这意味着这些意图只能执行警报管理器允许执行的操作,而不是允许您的应用程序执行的操作。如果允许警报管理器简单地执行任何操作,则每个应用程序都可以通过使用警报管理器作为代理来执行任何操作。因此,您必须使用挂起的意图来专门授予警报管理器您的特定意图所需的权限。[/编辑]
除此之外,与常规意图没有太大区别,至少就使用而言是这样。由于粘性意图等,它确实变得有点复杂,但这就是它的一般要点,至少据我所知。
当您想要对某些系统事件或其他应用程序的事件做出反应时,需要广播接收器。广播接收器是不可见的,它不会创建任何形式的视图,也不涉及任何形式的用户交互。优点是,无论您的应用程序(或者更确切地说,您的活动)当前是否正在运行,这种情况都可能发生。
广播接收器仅被授予大约 10 秒的时间来执行操作,之后它就会被系统杀死。因此,如果您想执行任何类型的长时间运行的进程,您必须使用后台服务,或者打开一个活动来让您的用户做一些事情。
| 归档时间: |
|
| 查看次数: |
943 次 |
| 最近记录: |