`

PendingIntent和Intent的区别(转)

阅读更多

intent 英文意思是意图, pending 表示即将发生或来临的事情。
PendingIntent
这个类用于处理即将发生的事情。比如在通知 Notification 中用于跳转页面,但不是马上跳转。

Intent 是及时启动, intent 随所在的 activity 消失而消失。
PendingIntent
可以看作是对 intent 的包装,通常通过 getActivity,getBroadcast ,getService 来得到 pendingintent 的实例,当前 activity 并不能马上启动它所包含的 intent, 而是在外部执行 pendingintent 时,调用 intent 的。正由于 pendingintent 保存有当前 App Context ,使它赋予外部 App 一种能力,使得外部 App 可以如同当前 App 一样的执行 pendingintent 里的 Intent 就算在执行时当前 App 已经不存在了,也能通过存在 pendingintent 里的 Context 照样执行 Intent 。另外还可以处理 intent 执行后的操作。常和 alermanger notificationmanager 一起使用。
Intent
一般是用作 Activity Sercvice BroadcastReceiver 之间传递数据,而 Pendingintent ,一般用在 Notification 上, 可以理解为延迟执行的 intent PendingIntent 是对 Intent 一个包装。

Java 代码

1.    private   void  showNotify(){   

2.            Notification notice= new  Notification();   

3.            notice.icon=R.drawable.icon;   

4.            notice.tickerText= " 您有一条新的信息 " ;   

5.            notice.defaults=Notification.DEFAULT_SOUND;   

6.            notice.when=10L;   

7.             // 100  毫秒延迟后,震动  250  毫秒,暂停  100  毫秒后,再震动  500  毫秒      

8.             //notice.vibrate = new long[] { 100, 250, 100, 500 }; 出错?   

9.             //notice.setLatestEventInfo(this, " 通知 ", " 开会啦 ", PendingIntent.getActivity(this, 0, null, 0));   

10. notice.setLatestEventInfo( this " 通知 " " 开会啦 " , PendingIntent.getActivity( this 0 new  Intent( this ,Activity2. class ),  0 )); // 即将跳转页面,还没跳转   

11.         NotificationManager manager=(NotificationManager)getSystemService( this .NOTIFICATION_SERVICE);   

12.         manager.notify( 0 ,notice);   

13.     }  


1. GSM 网络中 android 发送短信示例

Java 代码

1.    String msg = " 你好,美女 " ;   

2.    String number =  "135****6784" ;   

3.    SmsManager sms = SmsManager.getDefault();   

4.      

5.    PendingIntent pi = PendingIntent.getBroadcast(SmsActivity. this , 0 , new  Intent(...), 0 );   

6.    sms.sendTextMessage(number,  null , msg, pi,  null );   

7.    Toast.makeText(SmsActivity. this , " 发送成功 " ,Toast.LENGHT_LONG).show();  


代码解释
      PendingIntent
就是一个 Intent 的描述,我们可以把这个描述交给别的程序,别的程序根据这个描述在后面的别的时间做你安排做的事情 By giving a PendingIntent to another application, you are granting it the right to perform the operation you have specified as if the other application was yourself ,就相当于 PendingIntent 代表了 Intent )。本例中别的程序就是发送短信的程序,短信发送成功后要把 intent 广播出去
     
函数 SmsManager.sendTextMessage(String destinationAddress, String scAddress, String text, PendingIntent sentIntent, PendingIntent deliveryIntent) 中参数解释:
      1
PendingIntent sentIntent :当短信发出时,成功的话 sendIntent 会把其内部的描述的 intent 广播出去,否则产生错误代码并通过 android.app.PendingIntent.OnFinished 进行回调,这个参数最好不为空,否则会存在资源浪费的潜在问题;
      2
PendingIntent deliveryIntent :是当消息已经传递给收信人后所进行的 PendingIntent 广播。
     
查看 PendingIntent 类可以看到许多的 Send 函数,就是 PendingIntent 在进行被赋予的相关的操作。

转自:http://www.cnblogs.com/lhxin/archive/2011/10/20/2218522.html

分享到:
评论

相关推荐

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

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

    Intent和PendingIntent的区别

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

    Android中pendingIntent与Intent的深入分析

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

    Android 之 PendingIntent用法介绍

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

    Notification的用法和PendingIntent使用

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

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

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

    PendingIntent 使用示例

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

    PendingIntent

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

    Android中pendingIntent的深入理解

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

    android 服务 Service PendingIntent 通知

    `PendingIntent`是Android中的一个关键类,它代表一个意图(Intent)的动作,可以在未来的某个时刻由系统或者其他应用触发。`PendingIntent`主要用于跨进程通信,例如在通知(Notification)中使用,当用户点击通知...

    谈谈安卓的Intent注入.pdf

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

    Android Studio 实验二:Intent的使用

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

    Android中PendingIntent的简要介绍.pdf

    总之,PendingIntent是Android系统中一个强大的工具,它使得Intent的操作可以跨越时间和空间,为应用程序的交互和扩展提供了极大的便利。理解和熟练运用PendingIntent,对于开发高质量的Android应用至关重要。

    Android Proximity Alert 手机接近进警告或提示功能一例.rar

    Android Proximity Alert 手机接近进警告或提示... PendingIntent pi = PendingIntent.getBroadcast(this, -1, intent, 0);  //添加接近警告  lm.addProximityAlert(latitude, longitude, radius, -1, pi);

    Android应用源码之Intent1_Intent.zip

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

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

    这个程序的核心在于使用`SmsManager`类和`PendingIntent`类。本文将详细介绍这两个关键类的使用方法以及如何结合它们来实现短信发送功能。 首先,`SmsManager`是Android SDK提供的一种系统服务,用于处理短信的发送...

    Andriod Intent使用代码举例

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

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

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

    mooc_android_lesson18_AlarmManager和PendingIntent实现定时提醒功能

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

Global site tag (gtag.js) - Google Analytics