Android开发-Notification通知栏通知最基础运用
从 Android 8.0(API 级别 26)开始,所有通知都必须分配到相应的渠道。对于每个渠道,您可以设置应用于其中的所有通知的视觉和听觉行为。然后,用户可以更改这些设置,并确定您应用中的哪些通知渠道应具有干扰性或应该可见。
具体的信息可参考创建和管理通知渠道 | Android 开发者 | Android Developers
将以下代码放入到onCreate()函数中,即能够在每次运行APP时在通知栏出现通知,如有需要可以在main_Activity.xml中添加按钮,添加按钮监听代码即可实现点击按钮出现通知。
注意:PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent, FLAG_MUTABLE);
中flag值必须为FLAG_MUTABLE,不能为0,不然编译会报错。
通知代码主要分为以下几步:
1. 创建通知的意图
2. 使用 NotificationCompat.Builder 类创建通知
3.创建通知渠道
4.推送通知到通知栏
// 创建通知的意图Intent intent = new Intent(this, MainActivity.class);intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK); // 清除任务栈PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent, FLAG_MUTABLE);// 使用 NotificationCompat.Builder 类创建通知String channelId = "my_channel_id";NotificationCompat.Builder builder = new NotificationCompat.Builder(this, channelId).setSmallIcon(R.drawable.icon).setContentTitle("天气订阅系统").setContentText("欢迎订阅天气,伴你出行!").setPriority(NotificationCompat.PRIORITY_DEFAULT).setContentIntent(pendingIntent).setAutoCancel(true);// 创建通知渠道if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {CharSequence name = "My Channel";Log.d(TAG,"频道频道");String description = "This is my notification channel";int importance = NotificationManager.IMPORTANCE_DEFAULT;NotificationChannel channel = new NotificationChannel(channelId, name, importance);channel.setDescription(description);NotificationManager notificationManager = getSystemService(NotificationManager.class);notificationManager.createNotificationChannel(channel);}// 推送通知到通知栏NotificationManagerCompat notificationManagerCompat = NotificationManagerCompat.from(this);int notificationId = 2;notificationManagerCompat.notify(notificationId, builder.build());
通知栏通知截图如下:
如出现后台发现APP有发通知但是通知栏并未出现通知,可以检查手机是否拦截了通知,关闭通知过滤即可。
若是真机测试第一次安装没有收到通知,在设置中打开该应用的通知权限,再次打开尝试。
Android开发-Notification通知栏通知最基础运用相关推荐
- 【Android开发教程】一、基础概念
Android操作系统 Android是一个基于Linux.使用java作为程序接口的操作系统.他提供了一些工具,比如编译器.调试器.还有他自己的仿真器(DVM - Dalvik Virtual Ma ...
- “.NET研究”【Android开发教程】一、基础概念
Android操作系统 Android是一个基于Linux.使用java作为程序接口的操作系统.他提供了一些工具,比如编译器.调试器.还有他自己的仿真器(DVM - Dalvik Virtual Ma ...
- Android篇 --Notification(消息通知)
Android篇 --Notification(消息通知) 消息通知(Notification)是Android系统中比较有特色的一个功能,当某个应用程序希望用户发出一些提示信息,而该应用又不在前台运 ...
- Android开发之通知栏Notification详解
Notification的用法 --- 状态栏通知 发送一个状态栏通知必须的两个类: 1. NotificationManager --- 状态栏通知的管理类,负责发通知 ...
- Android开发指南 1──应用程序基础
登录 | 注册 译言精选 订阅 社区 译言译事 翻译答问 译言帮助 文库 原文库 译文库 全部项目 空间 控制台 个人主页 发布 发布原文 发布翻译 发布编译 发布原创 首页 商业 科技 文化 体坛 ...
- Android开发必须掌握的Java基础知识和常见面试题
Java基础知识 面向对象特征 基本数据类型及装箱拆箱机制 String StringBuffer StringBuild final finally finalize 区别 static关键字 重写 ...
- Android开发16——获取网络资源之基础应用
一.项目背景在Android开发中有一项非常广泛的应用:Android项目获取另一个web项目的资源或者返回的数据.本博文介绍了获取另一个web项目的资源.有一个web项目,在其WebRoot文件夹下 ...
- Android学习—Notification消息通知
最近在项目中需要使用消息通知,自己把它封装成了一个方法,需要的时候方便调用, 下面对Notification类中的一些常量,字段,方法简单介绍一下: 常量: DEFAULT_ALL 使用所有默认 ...
- Android开发--Notification和PendingIntent
手机上方的状态栏用于显示通知消息,实现的方法很简单,只需要记住五个步骤即可(步骤写在源代码中的注释中).pendingIntent意思是延期执行的Intent,一般用于Notification中,下面 ...
最新文章
- 版本发布后软件测试人员要做的工作
- python适配器模式角色_python设计模式-适配器模式
- linux里的进程简介
- rust这么拆除钢墙_rust腐蚀如何拆墙
- 报错:‘nodemon‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件。
- UVALive 3401 彩色立方体
- 死于决斗的数学天才伽罗瓦-人生的有限域
- Win7下如何显示文件的扩展名?
- Nginx配置与安装及发布项目
- 苹果12系统链接到服务器超时,苹果iphone12无法连接wifi怎么回事 解决方法分享
- Unity 3D 射线检测方法
- ad18常用快捷键可以修改吗_AD18快捷键
- 英文电子书下载:salttiger.com
- php吧输出结果进行分割,[判断题] 呼叫处理程序按照一定的逻辑对呼叫进行处理,对呼叫的处理结果与局数据、用户数据的内容无关。...
- 指南-Luat二次开发教程-功能开发教程-SOCKET
- EAN13条形码绘制(Delphi版)
- 应用于素描人脸识别的迁移学习
- CSDN的markdown的KaTex数学公式
- 华为设备Loopback Detection配置命令
- 西工大c语言noj作业答案,西工大noj答案
热门文章
- 图片怎么自定义裁剪?图片如何裁出想要的大小?
- 软件缺陷常见问题总结(软件测试入门速成篇)
- 解决只读文件系统问题
- 如何确定MessageBox哪个按钮被点击。
- ie浏览器怎么打开html,win10ie浏览器不能打开html设置怎么办
- 施工工地考勤防作弊通道系统,建筑工地通道系统管理方案
- gke下载_我们如何在GKE上升级Kubernetes
- 35岁到40岁,如何突破
- Sort sort =new Sort(Sort.Direction.ASC,“id“)
- 马尔科夫随机场和马尔科夫链