zoukankan      html  css  js  c++  java
  • PendingIntent.getActivity的使用

    PendingIntent.getActivity(Context context, int requestCode, Intent intent, int flags)

    第一个参数连接上下文的context

    第二个参数是对PendingIntent的描述,请求值不同Intent就不同

    第三个参数是一个Intent对象,包含跳转目标

    第四个参数有4种状态

    FLAG_CANCEL_CURRENT:如果当前系统中已经存在一个相同的PendingIntent对象,那么就将先将已有的PendingIntent取消,然后重新生成一个PendingIntent对象。

    FLAG_NO_CREATE:如果当前系统中不存在相同的PendingIntent对象,系统将不会创建该PendingIntent对象而是直接返回null。

    FLAG_ONE_SHOT:该PendingIntent只作用一次。在该PendingIntent对象通过send()方法触发过后,PendingIntent将自动调用cancel()进行销毁,那么如果你再调用send()方法的话,系统将会返回一个SendIntentException。

    FLAG_UPDATE_CURRENT:如果系统中有一个和你描述的PendingIntent对等的PendingInent,那么系统将使用该PendingIntent对象,但是会使用新的Intent来更新之前PendingIntent中的Intent对象数据,例如更新Intent中的Extras。

    如果使用PendingIntent.FLAG_UPDATE_CURRENT,那么每次notifiId都是相同的数字,说明PendingIntent是一个,旧的参数被更新了。

    如果使用PendingIntent.FLAG_ONE_SHOT,那么PendingIntent只是第一次有效,后来再点击别的Notification就无效了。

    是否和getActivity的第2个参数有关系呢?

    确实如此,第2个参数如果不同,那么表示PendingIntent不同,就不会出现上述两种情况。

    那么问题来了,FLAG_CANCEL_CURRENT和FLAG_UPDATE_CURRENT有多大的区别?

  • 相关阅读:
    HDOJ 1284 钱币兑换问题
    WA : csu1019 simple line editor
    HDOJ1232 并查集
    最长回文子串
    Where's Waldorf?
    csu 1148 词典
    csu 1011 Counting Pixels
    Product:java高精度乘法
    内置类型开方
    csu 1019 Simple Line Editor
  • 原文地址:https://www.cnblogs.com/lyxin/p/5995681.html
Copyright © 2011-2022 走看看