`
zcdxzsz
  • 浏览: 74473 次
  • 来自: ...
社区版块
存档分类
最新评论

[转]Intent 和PendingIntent的关系

阅读更多
Intent 和PendingIntent的关系越看越迷惑,花了一段时间分析Android的JavaDoc终于有点心得,在此与大家分享:
Intent是一个意图,一个描述了想要启动一个Activity、Broadcast或是Service的意图。它主要持有的信息是它想要启动的组件(Activity、Broadcast或是Service)。
PendingIntent可以看作是对Intent的包装。供当前App之外的其他App调用。有点“被动”或是“Callback”的意思,但不是严格意义上的“被动”或是“Callback”。总之,当前App不能用它马上启动它所包裹的Intent。而是在外部App执行这个 PendingIntent时,间接地、实际地调用里面的Intent。PendingIntent主要持有的信息是它所包装的Intent和当前App 的Context。正由于PendingIntent中保存有当前App的Context,使它赋予外部App一种能力,使得外部App可以如同当前 App一样的执行PendingIntent里的Intent,就算在执行时当前App已经不存在了,也能通过存在PendingIntent里的 Context照样执行Intent。
分享到:
评论

相关推荐

    Intent和PendingIntent的区别

    简单的总结了Intent和PendtingIntent的区别,经常与alermanger 和notificationmanager一起使用。

    安卓之 (解决问题)PendingIntent和Intent的区别1

    在Android开发中,Intent和PendingIntent是两个非常重要的概念,它们在组件间的通信中起到关键作用。Intent可以理解为一种消息传递对象,用于在不同组件之间传递行为和数据,而PendingIntent则是Intent的一种封装,...

    Android 之 PendingIntent用法介绍

    当创建PendingIntent时,会根据提供的Intent和Flag来决定哪些应用可以触发这个Intent,以及如何触发。这种设计使得我们可以放心地将PendingIntent传递给第三方应用,如通知系统或闹钟服务。 PendingIntent的创建...

    Notification的用法和PendingIntent使用

    Notification 和 PendingIntent 的使用 Notification 是 Android 系统中的一种机制,用于在系统状态栏中显示通知信息,通常用于提醒用户某些事件的发生。PendingIntent 则是 Android 中的一种机制,用于在特定的...

    Android中pendingIntent与Intent的深入分析

    在Android开发中,Intent和PendingIntent是两个非常关键的概念,它们在应用程序的组件间通信中起着重要作用。Intent主要用于启动或传递数据给另一个组件,如Activity、Service或BroadcastReceiver,而PendingIntent...

    PendingIntent 使用示例

    3. IntentFlag:在创建PendingIntent时,可以通过setFlags()方法设置Intent标志,比如FLAG_CANCEL_CURRENT和FLAG_UPDATE_CURRENT,它们会影响PendingIntent的行为,如替换已存在的Intent或取消当前PendingIntent并...

    博客《详解PendingIntent》对应的有问题的PendingIntent源码

    当创建`PendingIntent`时,需要提供一个Intent实例,这个Intent包含了操作的目标(如ComponentName)、数据(Uri、Extras等)和操作类型(ACTION_VIEW、ACTION_SEND等)。 3. **唯一标识符**:`PendingIntent`通过`...

    Android中pendingIntent的深入理解

    1. **创建PendingIntent**: 应用通过Intent和Flags参数创建PendingIntent实例。 2. **传递给外部组件**: 将PendingIntent传递给其他应用或系统服务,如NotificationManager。 3. **外部组件请求执行**: 当外部组件...

    PendingIntent

    2. **获取PendingIntent**:然后,使用PendingIntent的静态工厂方法,如getActivity()、getService()或getBroadcast(),并传入上下文(Context)、Intent、请求码(int)和标志(int)。请求码和标志用于区分不同的...

    android 服务 Service PendingIntent 通知

    PendingIntent contentIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0); // 将PendingIntent添加到通知中 buildersetContentIntent(contentIntent); // 发送通知 NotificationManager ...

    Android中PendingIntent的简要介绍.pdf

    PendingIntent是基于Intent的,但它们之间没有继承关系。PendingIntent的创建是为了延迟Intent的执行,也就是说,它并不立即执行Intent的操作,而是将其封装起来,供其他组件在需要的时候使用。这种机制特别适用于...

    谈谈安卓的Intent注入.pdf

    归纳了Intent入 的4种形式:Intent转换与复制、 Action/Component/Data注 、PendingIntent误用与 parseUri注 入 归纳了利用自动化的工具具发现这4类形式的方法,通过批 量的扫描,可以轻易发现这些漏洞 在每种都找到了...

    Android Studio 实验二:Intent的使用

    本实验将深入探讨Android Studio中Intent的使用,帮助你更好地理解如何在不同的Activity之间跳转和传递信息。 首先,让我们了解Intent的基本概念。Intent分为两种类型:显式Intent和隐式Intent。显式Intent用于启动...

    mooc_android_lesson18_AlarmManager和PendingIntent实现定时提醒功能

    `AlarmManager`和`PendingIntent`是Android系统提供的两个关键组件,用于实现这样的定时提醒功能。下面将详细阐述这两个组件的工作原理及其结合使用的方式。 `AlarmManager`是Android系统中的一个服务,它允许应用...

    Android应用源码之Intent1_Intent.zip

    Intent1_Intent.zip中的源码应该包含了关于Intent的实例和使用方法,让我们一起深入探讨Intent在Android应用中的作用、类型、创建与传递、以及常见用法。 1. **Intent的作用** Intent的主要功能是启动一个活动...

    自制发送短信程序--SmsManager与PendingIntent类的使用

    其中,`"com.example.SMS_SENT"`和`"com.example.SMS_DELIVERED"`是自定义的广播事件,`context`是应用的上下文,`0`是请求码,`FLAG_UPDATE_CURRENT`表示如果存在相同的Intent,更新当前的PendingIntent而不是创建...

    安卓基本知识之Intent学习源代码

    3. 异步Intent:通过使用PendingIntent,可以在后台服务或BroadcastReceiver中安全地执行Intent操作。 总之,Intent是Android应用程序组件间通信的桥梁,理解和熟练使用Intent对于Android开发者来说至关重要。通过...

    Andriod Intent使用代码举例

    - 使用`PendingIntent`,将Intent包装成可延迟执行的对象,常用于通知、AlarmManager等场景。 - `Intent.createChooser(Intent target, CharSequence title)`:创建一个Intent选择器,让用户从多个可处理相同...

    自定义通知声音

    总结来说,实现自定义通知声音、通知栏跳转和数据传递的步骤包括:创建自定义音频文件,将其添加到项目资源,使用NotificationCompat.Builder设置声音,构建并设置Intent和PendingIntent以实现点击通知后的行为,...

Global site tag (gtag.js) - Google Analytics