• Android Notification 学习笔记(普通通知+可操作通知)


    Notification

    实现通知

    1. 创建一个NotificationManager

      • NotificationManager类是一个通知管理器类,该对象以单例模式方式获得
      • 是一个系统服务,即可以通过Activity.getSystemService(String)方法获取Context.NOtifICAtiON_SERVICE来返回到NotificationManager
      manager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);//创建一个NotificationManager
      
      • 1
    2. 使用Builder构造器来创建Notification对象

      • 可以保证程序在所有的版本上都能正常工作
      • 通过链式结构来设置Notification的属性
        • setContentTitle(String string) 标题
        • setContentText(String string) 文本内容
        • setSmallIcon(int icon) 小图标
        • setLargeIcon(Bitmap icon) 大图标
        • setContentIntent(PendingIntent intent) 跳转事件
        • setAutoCancel(boolean) 点击后自动清除通知
        //Notification notification =new NotificationCompat.Builder(context,channelId).build();
               notification = new NotificationCompat.Builder(this, "zgs")
                    .setContentTitle("zgs设置的通知")//设置标题
                    .setContentText("点击通知进入登录界面")//设置文本内容
                    .setSmallIcon(R.drawable.ic_baseline_favorite_border_24)//设置小图标
                    .setColor(Color.parseColor("#ff0222"))//设置小图标颜色
                    .setLargeIcon(BitmapFactory.decodeResource(getResources(), R.drawable.bairen))//设置大图标
                    .setContentIntent(pendingIntent)//跳转事件
                    .setAutoCancel(true)//点击后消失
                    .build();
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    1. NotificationChanel 通知渠道

      • Android 8.0引入的功能
      • NotificationManager类中通知的重要程度(从低到高):
        • IMPORTANCE_NONE:关闭通知
        • IMPORTANCE_MIN:开启通知,不会弹出,没有提示音,状态栏中无显示
        • IMPORTANCE_LOW:开启通知,不会弹出,没有提示音,状态栏中显示
        • IMPORTANCE_DEFAULT:开启通知,不会弹出,发出提示音,状态栏中显示
        • IMPORTANCE_HiGH:开启通知,会弹出,发出提示音,状态栏中显示
      if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
           //版本判断:8.0版本以上才用得到
          channel = new NotificationChannel
              ("zgs", "NotificationText", NotificationManager.IMPORTANCE_HIGH);
              manager.createNotificationChannel(channel);
          }
          
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
  • 相关阅读:
    【区间 DP】运用区间 DP 解决古老原题
    文本标注工具doccano无法进入后台管理系统admin
    【PyTorch实战】用RNN写诗
    如何提高代码交付效率,完成代码交付应用自动化?
    Unity 之 音频类型和编码格式介绍
    Burp Suite详解
    【postgres】pgbackrest 冷备份介绍、命令、脚本
    vue 项目启动后一直不断的刷新停不下来
    java(HashSet类)
    flex布局独占一行实现方法
  • 原文地址:https://blog.csdn.net/mosun_zgs/article/details/127426245