Android发送通知——通知栏(Notification)
Android发送通知——通知栏(Notification)
通知是指 Android 在您应用的界面之外显示的消息,旨在向用户提供提醒、来自他人的通信信息或您应用中的其他实时信息。在发出一条通知后,手机最上方的状态栏会显示一个通知的图标,下拉状态栏后就可以看到通知的详细内容。用户可以点按通知来打开应用,或直接从通知中执行操作。
通知格式
- 小图标:必须提供,通过 setSmallIcon() 进行设置。
- 应用名称:由系统提供。
- 时间戳:由系统提供,但您可以使用 setWhen() 替换它或者使用 setShowWhen(false) 隐藏它。
- 大图标:可选内容(通常仅用于联系人照片,请勿将其用于应用图标),通过 setLargeIcon() 进行设置。
- 标题:可选内容,通过 setContentTitle() 进行设置。
- 文本:可选内容,通过 setContentText() 进行设置。
创建通知
- 创建一个通知(必须设置channelId)
使用Builder构造器来创建Notification对象
Context context=getApplicationContext();
String channelId = "测试渠道";
Notification notification = new Notification.Builder(context,channelId).setContentTitle("测试通知标题").setContentText("测试通知文本").setWhen(System.currentTimeMillis()).setSmallIcon(R.drawable.icon).setLargeIcon(BitmapFactory.decodeResource(getResources(),R.drawable.welcome1)) //设置大图标.build();
Notificationt.Builder常用设置:
设置属性 | 说明 |
---|---|
setAutoCancel(boolean autocancel) | 设置点击信息后自动清除通知 |
setContent(RemoteView view) | 设置自定义通知 |
setContentTitle(String string) | 设置标题 |
setContentText(String string) | 设置内容 |
SetContentIntent(PendingIntent intent) | 设置点击信息后的跳转(意图) |
setWhen(long when) | 设置时间 |
setSmallIcon() | 设置小图标 |
setLargeIcon() | 设置大图标 |
setPriority(int pri) | 设置通知的重要程度 |
setStyle(Style style) | 设置样式 |
setVisibility(int visibility) | 设置锁屏显示 |
setDefault(int defaults) | 设置默认 |
- 获取系统的通知管理器
NotificationManager notificationManager = (NotificationManager)context.getSystemService(NOTIFICATION_SERVICE);
- 创建NotificationChannel(这里传入的channelId要和创建的通知channelId一致,才能为指定通知建立通知渠道)
NotificationChannel channel = new NotificationChannel(channelId,"测试渠道名称", NotificationManager.IMPORTANCE_DEFAULT);
notificationManager.createNotificationChannel(channel);
通知渠道是指每条通知都要属于一个对应的渠道,每个APP可以自由地创建当前APP拥有哪些通知渠道,但是这些通知渠道的控制权都是掌握在用户手上的。用户可以自由地选择这些通知渠道的重要程度、是否响铃、是否震动或者是否关闭这个渠道的通知。
通知渠道的使用:Android O(8.0)Notification Channel使用姿势、NotificationChannel使用手册
- 发送通知
notificationManager.notify(1123, notification);
通知样式
Android为开发者提供了不同种类的通知样式模板可以使用,开发者也可以根据自己需要自定义通知样式。
本来是打算自己看手册总结一下的,有个大神总结得很到位:Android 8.0中各种通知写法汇总。
以大图样式为例:
// 1. 创建一个通知(必须设置channelId)
Notification.BigPictureStyle bigPictureStyle = new Notification.BigPictureStyle().setBigContentTitle("Big picture style notification ~ Expand title").setSummaryText("Demo for big picture style notification ! ~ Expand summery").bigPicture(BitmapFactory.decodeResource(context.getResources(),R.drawable.welcome3));
Notification notification = new Notification.Builder(context,channelId).setContentTitle("测试通知标题").setContentText("测试通知文本").setWhen(System.currentTimeMillis()).setSmallIcon(R.drawable.icon).setLargeIcon(BitmapFactory.decodeResource(getResources(),R.drawable.welcome1)) //设置大图标.setStyle(bigPictureStyle).build();
// 2. 获取系统的通知管理器
NotificationManager notificationManager = (NotificationManager)context.getSystemService(NOTIFICATION_SERVICE);
// 3. 创建NotificationChannel(这里传入的channelId要和创建的通知channelId一致,才能为指定通知建立通知渠道)
NotificationChannel channel = new NotificationChannel(channelId,"测试渠道名称", NotificationManager.IMPORTANCE_DEFAULT);
notificationManager.createNotificationChannel(channel);
// 4. 发送通知
notificationManager.notify(1123, notification);
展开前:
展开后:
Android发送通知——通知栏(Notification)相关推荐
- Android开发之通知栏Notification详解
Notification的用法 --- 状态栏通知 发送一个状态栏通知必须的两个类: 1. NotificationManager --- 状态栏通知的管理类,负责发通知 ...
- Android之手机通知栏Notification的使用(二)
先看效果图吧,可能有点小缺陷 怎么取消通知都取消不了,有哪位大神可以给我解释一下啊 MainActivity: package com.example.notificationapp;import a ...
- android 通知传值,Android消息通知(notification)和PendingIntent传值
Android支持Toast和NotificationManager两种通知方式,前者相当于一个定时关闭的对话框,后者是在状态栏上显示一条消息.Toast和Notification都可以随时取消. T ...
- 【Android-】android 8.0 通知栏Notification适配、自定义铃声及其channel介绍
android 8.0 通知栏Notification适配以及自定义铃声 一.8.0手机 通知栏适配 二.自定义铃声所遇到的坑 三.Android O Preview 之 通知渠道(Notificat ...
- Android — 在服务中发送通知Notification
1.在服务中,发送通知的方法 private void sendNotification(String title,String content,StateBean stateBean){Contex ...
- android 音乐播放器的状态栏通知,Android仿虾米音乐播放器之通知栏notification解析...
通知栏notification是Android中一个很重要的组件,可以在顶部状态栏中存在,用户也可以通过此来操作应用,在Android中只有3.0以上的版本才加入了notification的按钮点击功 ...
- Android 8.0+通知栏(Notification)适配详解,判断通知权限是否打开,并跳转至通知管理页面
前不久因为API26(Android 8.0)以上的设备无法显示通知栏,所以网上查阅了比较多了资料,得出结论,API26以后引入了通知渠道这么个东西,然后就写了一篇问题对应的博文:Android 8. ...
- Android 通知栏Notification
Android 通知栏Notification 在android的应用层中,涉及到很多应用框架,例如:Service框架,Activity管理机制,Broadcast机制,对话框框架,标题栏框架,状态 ...
- java发送通知栏样式_Android 通知栏Notification详解
在android的应用层中,涉及到很多应用框架,例如:Service框架,Activity管理机制,Broadcast机制,对话框框架,标题栏框架,状态栏框架,通知机制,ActionBar框架等等. ...
最新文章
- IOSUIcontrol事件
- 无人驾驶运动学模型——线性时变模型预测控制的思路推演过程_百叶书的博客-CSDN博客_线性时变模型预测控制 转
- OpenCL异构并行计算编程笔记(1):平台、设备与上下文
- 关于一些知名深度学习模型的转换
- php psr-2,「PSR 规范」PSR-2 编码风格规范
- 通过百度 vs 奇虎,来谈博客搜索
- Palindromic Numbers LightOJ - 1205 数位dp 求回文数
- 自定义注解 实现自定义消息_实现自定义的未来
- 【渝粤题库】广东开放大学 商务交际听说 形成性考核
- 前端学习(627):数据类型
- zpf框架的business使用方法
- Spring之AOP面向切面编程
- Mac Pycharm导入Pygame教程(超细)
- 管理员登陆页面php,Dedecms管理员登录输入账号密码点击登陆又回到登陆界面
- 自考《数据库系统原理》(3)之关系模式设计理论
- 《正念领导力》承诺14:创造共赢
- (产品贴)手机常用软件之一—微信
- 苏嵌//张福辉//2018.7.11
- 自控力如何改善了我的生活
- php 获取农历,PHP通过新历获取农历日期的方法
热门文章
- 【数据库】SQL Server学习之路(一)
- Linux中xmind8 pro 破解(内附序列号,亲测有效)
- SuperMap GIS三维插件使用QA
- NLP判断语言情绪_挽回怎么用NLP神经语言程序学(一)
- Windows优化大师 V7.74 Build 7.702 (2007-07-02)
- latex中文模板_LaTeX论文排版初级教程 :论文的结构和tex源文件的结构
- 公司考勤系统需求分析报告
- ZZULIOJ.1114: 逆序
- c语言有趣的图形,数图形
- [Gradle系列]Gradle打包apk多版本,多渠道,多环境,多功能,多模块随心所欲