zoukankan      html  css  js  c++  java
  • 跟我学android-Notification

    Notification 可以理解为通知的意思,会出现在通知栏,比如来了一条短信

    使用 Notification 有以下3个步骤:

    1. 创建 NotificationManager的对象

    2.为Notification设置属性

    3.使用 NotificationManager 提供的 notify 发送通知

    实例:发出一个通知

     1     /**
     2      * 创建notify
     3      */
     4     private void createNotify() {
     5         // 创建NotificationManager 对象
     6         NotificationManager manager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
     7         // 创建notifyCation对象
     8         Notification notify = new Notification();
     9         notify.icon = R.drawable.icon_reply;//设置图标
    10         notify.when = System.currentTimeMillis();//发通知的时间,立即
    11         notify.tickerText = "hi,我来了";//提示文字
    12         notify.flags = Notification.FLAG_AUTO_CANCEL;//用户点击后 自动取消
    13         Intent intent = new Intent(this, NextActivity.class);
    14         PendingIntent pIntent = PendingIntent.getActivity(this, 0, intent,
    15                 PendingIntent.FLAG_UPDATE_CURRENT);
    16         notify.setLatestEventInfo(this, "来消息啦", "一条通知", pIntent);
    17         manager.notify(10, notify);//发出通知,10是 通知的id
    18     }

    这个方法 大家可以设置是 按钮的事件里 调用,运行程序后,点击按钮 就可以看到通知发送出来了。 布局文件 和相关的代码 这里就不在编写。

    PendingIntent 为Intent的包装,这里是启动Intent的描述,PendingIntent.getActivity 返回的PendingIntent表示

    此PendingIntent实例中的Intent是用于启动 Activity 的Intent。

    PendingIntent.getActivity的参数依次为:Context,发送者的请求码(可以填0),用于系统发送的Intent,标志位。

    其中 PendingIntent.FLAG_UPDATE_CURRENT  表示如果该描述的PendingIntent已存在,则改变已存在的PendingIntent的Extra数据为新的PendingIntent的Extra数据。

     Intent 与 PendingIntent 的区别:

    Intent :意图,即告诉系统我要干什么,然后系统根据这个Intent做对应的事。如startActivity相当于发送消息,而Intent是消息的内容。

    PendingIntent :包装Intent,Intent 是我们直接使用 startActivity , startService 或 sendBroadcast 启动某项工作的意图。

    而某些时候,我们并不能直接调用startActivity , startServide 或 sendBroadcast ,而是当程序或系统达到某一条件才发送Intent。

    如这里的Notification,当用户点击Notification之后,由系统发出一条Activity 的 Intent 。因此如果我们不用某种方法来告诉系统的话,系统是不知道是使用 startActivity ,

    startService 还是 sendBroadcast 来启动Intent 的(当然还有其他的“描述”),因此这里便需要PendingIntent。

  • 相关阅读:
    IDEA怎么自动生成serialVersionUID
    使用gcc的-l参数的时候,怎么查找函数所在库的位置
    有一个10 G 的文件,你只有有一个 2 G 的内存,找出重复最多的数字
    gdb调试使用教程
    使用autoscan自动生成makefile文件
    如何查看yum命令安装的软件的安装目录
    手机QQ邮箱app有未读邮件,图标右上角没有红色小圆点的解决方案
    谷歌google帐号(邮箱)注册时,提示此电话号码无法用于验证
    Notepad++编写的shell脚本在linux下无法执行的解决方法
    linux如何配置普通用户(非root用户)的sudo权限
  • 原文地址:https://www.cnblogs.com/blog-IT/p/3981697.html
Copyright © 2011-2022 走看看