pendingintent介绍

pendingintent很显然存在pending的状态和意图,他表示一种,待定或者即将发生的意思。它与intent的区别在于pendingintent在于将来不确定的时刻发生,而intent在于即刻发生。他的使用场景就是给removeview添加点击事件,因为removeview是远程界面,不能直接setonclicklisneter;就必须使用pendingintent使用send和cancel来发送和取消特定的intent。

pendingintent支持三种意图,包含启动activity,service和发送广播。

     

   如上所示,getactivity()、getrecever(),getbroadcast(),三个方法的参数意义都是相同的,第一个参数和第三个参数好理解,但是第二个参数和第四个参数;requestcode表示pendingintent的请求码,多数情况下为0即可,他的值会影响flag的效果,flag表示pendingintent的匹配规则。

规则如下:

FLAG_ONE_SHOT

描述当前pendingintent只能使用一次,然后他会自动被cancel掉,如果后续还会有pendingintent,那么他的send方法将会失败,如果通知栏使用此标记位,那么同类信息通知只能使用一次,点击效果将会消失。

FLAG_NO_CREATE

当前的pendingintent将不会主动创建,如果当前的pendingintent之前不存在,那么getactivity和getbroadcast,getrecever返回null值,这个标记位无法单独使用。没有太大的意义。

FLAG_CANCEL_CURRENT

如果当前描述的pendingintent存在,那么他们都会被cancel掉,然后系统会创建一个新的pendingintent,对于消息同志来说,那些被cancel的消息将无法打开。

FLAG_UPDATE_CURRENT 

当前描述的pendingintent如果已经存在,那么他们都会被update,即他们intent中的extra中的数据将会被替换成最新的。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值