PendingIntent的使用

转载 2016年05月30日 10:07:12

   参看原文:http://blog.csdn.net/zeng622peng/article/details/6180190

                    http://blog.csdn.net/yuzhiboyi/article/details/8484771

  先看例子

<span style="font-size:18px;">private void showNotify(){
    	Notification notice=new Notification();
    	notice.icon=R.drawable.icon;
    	notice.tickerText="您有一条新的信息";
    	notice.defaults=Notification.DEFAULT_SOUND;
    	notice.when=10L;
    	// 100 毫秒延迟后,震动 250 毫秒,暂停 100 毫秒后,再震动 500 毫秒  
    	//notice.vibrate = new long[] { 100, 250, 100, 500 };出错?
    	//notice.setLatestEventInfo(this, "通知", "开会啦", PendingIntent.getActivity(this, 0, null, 0));
        notice.setLatestEventInfo(this, "通知", "开会啦", PendingIntent.getActivity(this, 0, new Intent(this,otherAct        ivity.class,null);<span style="color:#cc0000;">//即将跳转页面,还没跳转,这时Intent已经交给了NotigicationManager处理了。</span></span><pre name="code" class="java"><span style="font-size: 18px;">       </span><span style="font-family: Arial, Helvetica, sans-serif;">//获取系统通知服务</span>
NotificationManager manager=(NotificationManager)getSystemService(this.NOTIFICATION_SERVICE); manager.notify(0,notice); }

      例子中Intent什么时候开始被处理呢?应该在manager.notify(0,notice)中被处理,此时manager通过调用传进来的notice中的PendingIntent的send()方法。PendingIntent.send(){

方法中可以做这样处理,源程序Context.startActivity(Intent);  }

    什么时候调用就要看NotificationManager了。

    发送短信的例子

private final static String SEND_ACTION      = "send";
private final static String DELIVERED_ACTION = "delivered";

private void sendSms(String receiver, String text) {
    SmsManager s = SmsManager.getDefault();
    PendingIntent sentPI = PendingIntent.getBroadcast(this, 0, new Intent(SEND_ACTION),
                                                      PendingIntent.FLAG_CANCEL_CURRENT);
    PendingIntent deliveredPI = PendingIntent.getBroadcast(this, 0, new Intent(DELIVERED_ACTION),
                                                           PendingIntent.FLAG_CANCEL_CURRENT);
    // 发送完成
    registerReceiver(new BroadcastReceiver() {

        @Override
        public void onReceive(Context context, Intent intent) {
            switch (getResultCode()) {
                case Activity.RESULT_OK:
                    Toast.makeText(getBaseContext(), "Send Success!", Toast.LENGTH_SHORT).show();
                    break;
                case SmsManager.RESULT_ERROR_GENERIC_FAILURE:
                    Toast.makeText(getBaseContext(), "Send Failed because generic failure cause.",
                                   Toast.LENGTH_SHORT).show();
                    break;
                case SmsManager.RESULT_ERROR_NO_SERVICE:
                    Toast.makeText(getBaseContext(), "Send Failed because service is currently unavailable.",
                                   Toast.LENGTH_SHORT).show();
                    break;
                case SmsManager.RESULT_ERROR_NULL_PDU:
                    Toast.makeText(getBaseContext(), "Send Failed because no pdu provided.", Toast.LENGTH_SHORT).show();
                    break;
                case SmsManager.RESULT_ERROR_RADIO_OFF:
                    Toast.makeText(getBaseContext(), "Send Failed because radio was explicitly turned off.",
                                   Toast.LENGTH_SHORT).show();
                    break;
                default:
                    Toast.makeText(getBaseContext(), "Send Failed.", Toast.LENGTH_SHORT).show();
                    break;
            }
        }
    }, new IntentFilter(SEND_ACTION));

    // 对方接受完成
    registerReceiver(new BroadcastReceiver() {

        @Override
        public void onReceive(Context context, Intent intent) {
            switch (getResultCode()) {
                case Activity.RESULT_OK:
                    Toast.makeText(getBaseContext(), "Delivered Success!", Toast.LENGTH_SHORT).show();
                    break;
                default:
                    Toast.makeText(getBaseContext(), "Delivered Failed!", Toast.LENGTH_SHORT).show();
                    break;
            }
        }
    }, new IntentFilter(DELIVERED_ACTION));

    // 发送短信,sentPI和deliveredPI将分别在短信发送成功和对方接受成功时被广播
    s.sendTextMessage(receiver, null, text, sentPI, deliveredPI);
}




Notification的用法和PendingIntent使用

  • 2014年08月12日 10:34
  • 402KB
  • 下载

PendingIntent 使用示例

  • 2012年12月22日 17:58
  • 359KB
  • 下载

Android中的PendingIntent使用注意事项

在Android开发中,PendingIntent主要用于Notification、AlarmManager以及Widget中,获取PendingIntent主要有三种方式:getActivity()...

AlarmManager与PendingIntent的联合使用(一)

AlarmManager与PendingInteng.getBroadcast及getActivity: package com.example.alarmmanager; import andr...

AlarmMananger及PendingIntent的首次使用

多low,也好总结——题记 看项目代码的时候,发现在项目的首个页面,调用了AlarmManager启动一个广告(BroadCastReceiver),这玩意儿没见过,于是就上网查了些资料,想了解是干啥...

Notification使用以及PendingIntent.getActivity()

public void sendNotification(Context ctx, String message) {   // get the notification manager   St...
  • JoeBaby_
  • JoeBaby_
  • 2012年09月13日 10:58
  • 28535

android之PendingIntent的使用

PendingIntent的使用 知识点: 1、pendingIntent简介; 2、pendingIntent的基本用法; 3、notification通知的用法; pen...

PendingIntent的相关使用说明

Intent 我们用的比较多,页面调转时总是用到,那么PendingIntent呢? Intent是意图的意思,而PendingIntent是一个特殊的Intent,主要区别是intent是立马执行...
  • ocean20
  • ocean20
  • 2017年04月21日 14:54
  • 308

使用PendingIntent.getBrocast() 在 onReceive 中接受不到intent 的问题

今天在service 中使用了 PendingIntent.getBrocast()这个方法去发送一个广播,然后在onReceiver中接受并获取intent中的数据。之前是这样写的(没有注释的部分)...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:PendingIntent的使用
举报原因:
原因补充:

(最多只允许输入30个字)