在最近写的闹钟APP中,使用到了PendingIntent,PendingIntent的获取方法有三种:
- getActivity(Context context,int requestCode,Intent intent,int flags)
- getBroadcast(Context context,int requestCode,Intent intent,int flags)
- getService(Context context,int requestCode,Intent intent,int flags)
一开始我不了解这些方法的时候上网查询,结果其他人写的这三个方法中第二个参数和第四个参数均为0,导致了我设置多个闹钟后只有最后一个响应,后来经过排查,才发现是这两个参数设置的原因
首先介绍第四个参数int flags,官方文档这样说明:
flags:Maybe FLAG_ONE_SHOT, FLAG_NO_CREATE, FLAG_CANCEL_CURRENT, FLAG_UPDATE_CURRENT, or any of the flags as supported by Intent.fillIn() to control which unspecified parts of the intent that can be supplied when the actual send happens.
flags的值有以下几种:
- FLAG_CANCEL_CURRENT