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
原文地址:https://www.cnblogs.com/shineyoung/p/11575250.html
时间: 2024-10-12 19:35:47