首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么通知没有出现在API 28中?

通知没有出现在API 28中的原因是因为在Android 8.0(API级别28)中,通知系统经历了一些重大的变化和改进。具体来说,Android 8.0引入了通知渠道(Notification Channels)的概念,以提供更好的用户体验和更精细的通知控制。

通知渠道允许开发者将通知分组并为每个渠道定义不同的优先级、声音、震动模式和其他设置。这样一来,用户可以根据自己的喜好和需求对通知进行个性化设置,同时也可以更好地管理和过滤通知。

在API 28之前的版本中,通知的创建和管理相对简单,开发者可以直接使用Notification类进行操作。但是,为了适应通知渠道的引入,API 28对通知系统进行了重构和优化,引入了新的NotificationCompat类和NotificationManagerCompat类来支持通知渠道的使用。

因此,通知在API 28中没有直接出现,而是通过NotificationCompat类和NotificationManagerCompat类来实现。开发者可以使用这些类来创建和管理通知渠道,以及发送通知。

总结起来,通知没有出现在API 28中是因为Android 8.0引入了通知渠道的概念,为了支持通知渠道的使用,通知系统进行了重构和优化,开发者需要使用NotificationCompat类和NotificationManagerCompat类来创建和管理通知渠道。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

为什么在Java中没有为空字符串设置访问API呢 | Java Debug 笔记

为什么在Java中没有为空字符串设置访问API呢?...=========================熟悉Java的朋友都知道,当我们通过双引号创建字符串的时候,Java 会将字符串存储在常量池中以供我们下次使用但是为什么String类不为我们提供一个对空字符串的引用呢因为这样做至少可以节省了编译的时间...,因为我们引用API的话编译器就知道我们引用现有的常量而不会再去对他做检查是否已经存在常量池等操作。...我个人认为这某种意义上来说这有点“代码味道”所以说,关于String的空字符一说在Java中中是否有更加复杂的涉及考虑还说设计者没有考虑到这个问题呢回答1===String.EMPTY是12个字符,而"...我不太确定为什么是String.EMPTY可以节省编译时间,实际上我认为应该是后者考虑到String被final修饰是不可变得。

14010

解析针对知名密码存储软件LastPass的钓鱼攻击

而用户是无法找出伪造的LostPass消息和真正的有什么不同,因为它们本来就没有区别——它们拥有“像素级相似”的通知和登录界面。...而我在过去的几小时内都没有使用LastPass也没有做过任何能导致账号登出的操作。当我点击消息通知时,我发现了一些东西:它显示到了浏览器窗口内。 ? 任何恶意网站都可以发出这样的通知。...由于LastPass 有一个可以远程访问的 API,这时一种攻击思路就出现在了我的脑海中。 攻击 下面是 LostPass 的攻击步骤。...随后攻击者的服务器会通过调用 LastPass 的 API 验证接收到的凭证是否正确。如果 API 提示需要进行二次验证,那么会在推送通知用户。...下面说明为什么攻击会如此有效: 1. 很多人对于钓鱼的反应是“培训好用户意识”,因为是他们自己犯错被钓鱼的。

88580
  • 面试官:我面Android程序员,经常遇到背题的,一问原理就露馅了

    连接优化 改进的点对点和互联网连接 WiFi高性能模式 Android系统基础 ART优化 神经网络API1.2 热感API 公共API的兼容性 更快的更新速度,更新鲜的代码~ 二、get 和 post...GET 方式提交的数据最多只能是 1024 字节,理论上 POST 没有限制,可传较大量的数据。...上面“安全”的含义仅仅是不作数据修改,而这里安全的含义是真正的 Security 的含义,比如: 通过 GET 提交数据,用 户名和密码将明文出现在 URL 上,因为(1)登录页面有可能被浏览器缓存,(...五、为什么等待和通知是在 Object 类而不是 Thread 中声明的 一个棘手的 Java 问题,如果 Java编程语言不是你设计的,你怎么能回答这个问题呢?...为什么等待和通知需要从同步块或方法中调用, 以及 Java 中的 wait,sleep 和 yield 方法之间的差异,如果你还没有读过,你会觉得有趣。

    96820

    以人为本 | Android 11 的消息通知

    通知栏消息展示层次 作为开发者,非常重要的一点就是要确保合适的使用通知被用来传达合适的意图,并且不会误用通知区域。比如,日历应用中一个即将发生的事件的提醒不应该作为紧急提醒出现在会话区域。...虽然 Android 强大的功能允许用户通过 通知渠道 设置通知的频率、可见性和重要性,但是如果没有遵循最佳实践,应用的价值和可信度就会降低,并且会对其在应用市场的信誉造成负面影响。...例如在下拉通知栏中为 消息风格的通知 增加了专门的区域。  对于全新的会话区域,Bubbles 会出现在通知的上方,并且会以悬浮窗的方式关联至用户会话。 ?...专门的会话区域和气泡提升了用户的专注体验 您可以看一下 Android 开发者文档中会话 (Conversation API) 页面中的相关介绍,只要通过遵循特定的指南,就可以使会话浮现在系统的各个位置...如果想要了解更多关于 Android 11 的更新内容和 API 指南,请参考 Android 开发者文档的 会话 页面。

    1.7K10

    Notification与Widget(其实没怎么讲)Android应用界面开发

    Android应用界面开发 第三章学习 第四部分#### ---- Notification与Widget#### Notification与Widget,他们为什么要一起讲呢?...因为他们很相似,甚至自定义界面的方法都是一样的,这点可能很多书里没有写 ---- 知识点: 首先你得看完这个网页,很少有官方的而且是中文的精美介绍,这就是一个 http://adchs.github.io...这竟然还给我一个List列表,很好,很强大,暂时我们都先不用,毕竟咱们新手,慢慢来嘛,我们选择None,没有华丽的再次下拉效果…… 咳咳,接下来下一个界面 ?...第一部分final声明的都是所需要用的资源文件, 将drawable目录下的png图片转换为Bitmap用来当通知栏最左边的图片; 然后定义了ticker,这句话会出现在通知推送时,在设备顶部闪一下...接下来使用NotificationCompat.Builder创建通知,老方法在API 23只后就已经删掉了,用不了!

    1.4K40

    Dubbo 稳定性案例:Nacos 注册中心可用性问题复盘

    : failed to req API: xx.xx.xx.xx:8848/nacos/v1/ns/instance/beat. code:502 msg: 此时还没有大范围的报错。...服务消费者向注册中心获取服务提供者地址列表,并根据负载算法直接调用提供者,此时间包含网络开销 注册中心,服务提供者,服务消费者三者之间均为长连接 注册中心通过长连接感知服务提供者的存在,服务提供者宕机,注册中心将立即推送事件通知消费者...Nacos 宕机不影响服务调用,为什么日志中仍然有调用报错 宕机期间,已有的服务提供者节点可能突然下线,但由于注册中心无法通知给消费者,所以客户端调用到下线的 IP 就会出现报错。...对于此类问题,Dubbo 也可以进行兜底 Dubbo 会在连接级别进行心跳检测,当 channel 本身不可用时,即使没有注册中心通知,也会对其进行断连,并设置定时器,当该连接恢复后,再恢复其可用性 在阿里云商业版的...为什么 Consumer 重启后,没有按照预期加载本地缓存文件 缓存文件正常,问题只有可能出现在读取缓存文件的逻辑上。

    1.7K10

    Vue组件开发三板斧:prop、event、slot

    但大多时候,组件还是需要使用方做一些定制操作,并可以在状态变化时通知给使用方,于是,一个组件最基本的API就是prop、event、slot,只要了解它们,那么再复杂的功能也能够做出来。...为什么呢? 很简单,Vue2.0用的是Object.defineProperties监听数据变化,而此方法不能监听到对象新增或者删除操作。...组件间通信 event $emit函数 这个比较简单,当组件状态发生变化或者完成某些操作后,需要通知父组件,调用$emit函数。...components/headTop' export default { name: 'layout', components: { headTop } } 这样,父级内定义的内容,就会出现在组件对应的...slot 里,没有写名字的,就是默认的 slot。

    2.1K30

    Android 8.0 “奥利奥”正式发布

    当我们长按一段文字中地址的一部分,系统不仅会将整个地址内容进行选中,还能在弹出的浮动工具条中显示地图应用,点击即可快速调用地图打开选中地址;同理,如果我们选中的是一段 URL,那么 Chrome 浏览器就会出现在弹出的浮动工具条中...同样的技术也将运用于 Android 8.0 的「分享」接口中,如果我们试图分享一张购物小票的照片,在分享列表中,系统会优先建议那些记账应用;而如果我们分享一张自拍,美颜应用则更可能会出现在分享菜单的前列...取消屏幕纵横比限制 以 Android 7.1(API 级别 25)或更低版本为目标平台开发的应用默认最大屏幕纵横比为 1.86,但这也导致这些应用在一些新近机型(比如 Galaxy S8/S8+)上显示效果不佳...通知延后 通常,当一条通知出现在通知栏,除了点击查看、划掉不理以外,我们就只剩下「放任不管」这种处理方式了。这显然不太优雅,太多的通知驻留不仅会让通知栏拥挤不堪,回过头进行处理的时候也很不方便。...理论上来说,如果开发者在开发应用时没有进行特殊限制,所有的非常驻通知(比如媒体通知)都可以被延后。

    1.4K40

    你不是说你会aop吗?

    我:为什么要去每个接口里记录日志? 小王:最开始我是用的拦截器,但是这样一个请求就记录了两条记录。 我:为什么是两条?...小王:Aop也是一样,在前置通知记录一条请求数据,后置通知记录一条响应数据。...小王:总共有五种,分别是: 前置通知:在我们执行目标方法之前运行(@Before) 后置通知:在我们目标方法运行结束之后,不管有没有异常(@After) 返回通知:在我们的目标方法正常返回值后运行(@AfterReturning...:匹配任意个方法参数 ..出现在类名中时,后面必须跟*,表示包、子孙包下的所有类; 现在我们优化一下上面的表达式,定义切面为controller包及controller下面所有包的所有方法 execution...这时候,看见小王眼睛发光,惊讶的说了一句:环绕通知太牛批了,竟然可以完成前置通知、后置通知和异常通知的工作! 这篇文章戏有点多,别见怪。 实战是提升技术最有效的途径!

    40330

    Instagram因API接口漏洞,遭受严重数据泄露

    Instagram是Facebook所拥有的具有7亿用户规模的照片共享服务,目前已经向所有已验证用户发出通知:一个不明身份的黑客已经利用Instagram中的一个bug,访问了一些人的个人信息,包括电子邮件和电话号码...这个bug出现在Instagram的API(应用程序接口),该接口用于与其他应用程序进行通信。...虽然Instagram没有透露API漏洞的任何细节,但它向用户保证该漏洞已经被修复,其安全小组正在进一步调查此事件。...但是,Instagram没有提到最近的数据泄露是否与Selena账户被黑有关。...此外,请勿点击电子邮件收到的任何可疑链接或附件,在没有正确验证来源的情况下,不要提供你的个人信息或财务信息。

    2K50

    API网关作用

    什么是 API 网关 网关一词最早出现在网络设备,比如两个相互独立的局域网之间通过路由器进行通信,中间的路由被称之为网关。...image.png 对接客户端和服务端的 API 网关 知道了 API 网关的基本定义,再来看看为什么我们要使用它。...如果没有其他两个子系统,它也是可以单独运行的。 Gateway-Admin 网关管理界面,可以进行 API、组件等系统基础信息的配置;例如:限流的策略,缓存配置,告警设置。...当请求数据被 CPU 内核获取,并且发送到指定的数据缓冲区时,请求的线程会接到“数据返回”的通知,然后就直接使用数据,不用自己去做取数据的操作。...当有 Socket 被激活时(获取网络数据),则通知相应的用户线程,执行 handle_event 进行数据读取、处理的工作。

    2.2K50

    手把手教你实现HazeOver

    我当真是不能理解为什么一个这么简单的东西竟然能要价这么高,所以我打算自已写一个类似的应用来满足我的需求。基本思路1....监听最前方窗口变化另一个问题在于最前方的窗口是会变更的,当最前方的窗口变更的时候,应用程序如何及时收到通知,把遮罩移动到新的最前方窗口下面。难点1....然而这个API是监听某个具体应用的最前方窗口变化,需要先监听最前方应用变化,然后才能使用这个Accessibility API。具体代码可参考这里3....实现平滑的过渡把 MaskWindow 直接放置在最前方的窗口后面,虽然能实现最前方窗口高亮的效果,但是当最前方窗口变化时,由于 MaskWindow 是直接出现在窗口后面的,所以原来高亮的窗口会由高亮突然变黑...,变为最前方的窗口会由黑突然高亮,这两个变化没有过渡,会非常生硬,所以为了更好的用户体验,希望能有一个过渡效果。

    27230

    Kubernetes API 概述

    REST API是Kubernetes系统的重要部分,组件之间的所有操作和通信均由API Server处理的REST API调用,大多数情况下,API定义和实现都符合标准的HTTP REST格式,可以通过...API 版本 为了在兼容旧版本的同时不断升级新的API,Kubernetes支持多种API版本,每种API版本都有不同的API路径,例如/api/v1或 /apis/extensions/v1beta1...需要注意,API版本和软件的版本没有直接关系,不同API版本有不同程度稳定性,API文档中详细描述了每个级别的标准。 Alpha级别: 包含alpha名称的版本(例如v1alpha1)。...随时可能会丢弃对该功能的支持,恕不另行通知API可能在以后的软件版本中以不兼容的方式更改,恕不另行通知。 该软件建议仅在短期测试集群中使用,因为错误的风险增加和缺乏长期支持。...Stable版本的功能特性,将出现在后续发布的软件版本中。 API groups API groups使得Kubernetes API的扩展更加方便。

    93770

    SDN实战团分享(七):YANG模型与OpenDaylight南北向接口

    模块中提供功能的开发者可以定义一个模型,从而可以创建对于所提供功能的更简单的、数据类型的API。因此降低了通过服务抽象层提供的数据结构的错误交互。...config data store中查询流表通常不包含以路由为目的的流表项(这就是为什么operational方式可以查询到table-miss流表项,即out-port:controller,而config...若没有则表明该操作不需要输入数据或者没有输出数据。 ?...MD-SAL简述 对于服务抽象层的Model-driven方法体现出一种统一北向和南向API以及SDN控制器中多种服务和元素中所使用的数据结构。...) 有些container 即出现在config里,又出现在operational里,我理解 一个container要么是config要么是operational,为啥会出现2个都是的情况?

    2.9K80

    基于Karma构建微服务

    这不是“如何去做”的例子,而更像是“为什么要做”或“这样做的原因”的一个例子,希望这个例子能让您对微服务适用范围和使用方法有所了解。...我们为什么选择微服务 当开始构建Karma时,我们决定将项目分成两个部分:后端API和前端应用程序。后端负责处理来自商店的订单,账目,用户管理,设备管理等等,而前端为访问此API的用户提供接口。...这听起来很简单,但是当它是一个应用程序时,与用户相关的代码很容易出现在商店和设备API中,很快商店API就由于设备API的快速更新而落后了(比如分配设备给用户)。...我们使用Amazon SNS(简单通知服务 Simple Notification Service)发布事件,并使用Amazon SQS(简单队列服务 Simple Queue Service)存储事件...然而,合同是隐含的,并不明确,所以我们还没有想出一个自动化的方法来测试它。 这样做的结果是,我们必须假设一切都会在某个时候失败。微服务结构意味着问题是局部的,不扩散。

    1K50

    Zookeeper分布式锁代码实现

    轻量:WatchedEvent是ZK进行watch通知的最小单元,整个数据结构包含:事件状态、事件类型、节点路径。注意ZK只是通知client节点的数据发生了变化,而不会直接提供具体的数据内容。...为什么需要分布式锁?有哪些场景呢?分布式锁的使用又有哪些注意的?分布式锁有什么特性呢?...如果由于一些因素,导致delete没有执行成功,那么这条记录会导致该方法再也不能被访问!为什么要先select,为什么不直接insert呢?性能如何呢?...[watch订阅机制] 看到没有,是不是有点像MQ的订阅机制,非常好用!【但是也有点不太完美,子节点的数据变更为什么没有监控呢,这有点不符合人性啊!...为什么Curator能成为Apache的顶级项目呢,我想大概就是因为它的与众不同的设计思想!

    39120
    领券