Android PendingIntent

Pending 可以理解为一种特殊的Intent,不同于立即执行的intent,PendingIntent是待执行的intent,至于什么时候执行intent看以下两个例子就知道了

提醒

 AlarmManger执行定时和周期任务,需要传入PendingIntent

Intent intent = new Intent(AlarmController.this, OneShotAlarm.class);
PendingIntent sender = PendingIntent.getBroadcast(AlarmController.this,
                    0, intent, 0);
AlarmManager am = (AlarmManager)getSystemService(ALARM_SERVICE);
            am.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), sender);

看上面这段代码

一个正常的intent->startXXX->intent启动了

一个pendingIntent->PendingIntent.getXXX()//表示要启动哪种类型,Activity,broadcast等

下面的AlarmManger am传入了一个PendingIntent sender

交由am启动intent,实现定时任务

需要注意的是区分PendingIntent的是requestcode,如果requestcode相同即便携带数据不同,任视为同一个PendingIntent,并且默认会覆盖原先的PendingIntent

01-13 19:23