Android技巧小结之新旧版本Notification

AndroidPush:[DEPRECATED] 更方便的将各个rom厂商自己的推送服务进行集成,并统一管理 [DEPRECATED] 各大三方推送基本都已支持集成相关厂商的推送,请查阅相关三方推送文档 更方便的将各个rom厂商自己的推送服务进行集成,并统一管理,使用前还是需要熟悉各个平台的相关文档 请检查各个推送平台官网SDK版本,及时更新最新版 为什么不做成一个库 作为底层码农,每天忙于coding,可能没有太多的时间及时更新各个平台的sdk,所以这里只是写了一些思想性的东西,大家可以在此基础上根据需求自己优化功能.另外, 推送这种东西,各家app的做法都不相同,通过自己动手集成能了解各个平台推送特点,方便以后遇到问题自己可以解决,而且各个厂商的SDK更新不同,自己修改起来更方便。 各个平台的说明 MIUI系统将使用 Flyme系统将使用 EMUI系统将使用 OPPO系统将使用 VIVO系统将使用 其他系统将使用 集成 将如下4个SDK集成到项目中 华为SDK 请自行去下载(推荐)或者 并 立即下载

本文转载至点击


Notification即通知,用于在通知栏显示提示信息。
在较新的版本中(API level > 11),Notification类中的一些方法被Android声明deprecated(弃用),其实基本上相当于全部弃用了,因为这个类本身方法就少得可怜。
Android官方声明弃用,一定有它的理由,虽然我也不知道是什么。奈何本人轻度强迫症患者,人家都建议你不要用了,那就不要老是恪守着N年前的东西了。
就像是以前,一说到标签页,大家基本上都会想到TabHost配合ActivityGroup,但Android后来提倡Fragment。
废话说多了,还是小结一下使用方法。下面按照创建一个通知的步骤一步一步来,同时给出新旧实现方法。
1、获取Notification管理器
NotificationManager noteMng = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);

2、新建一个Notification,设置状态栏显示样式
private Notification note;
//API 11以下
note = new Notification(R.drawable.ico_launcher “显示于屏幕顶端状态栏的文本”, System.currentTimeMillis());
//API 11及以上
Notification.Builder builder = new Notification.Builder(nowContext).setTicker(“显示于屏幕顶端状态栏的文本”)
.setSmallIcon(R.drawable.ic_laucher);
API 11以上版本中,状态栏显示的样式跟下拉通知栏中显示的样式,可以一起设置,就是通过Notification.Builder类来实现,这里的Builder只调用了两个方法来设置状态栏显示样式。

3、设置Notification标志位(非必要步骤)
//FLAG_ONGOING_EVENT表明有程序在运行,该Notification不可由用户清除
note.flags = Notification.FLAG_ONGOING_EVENT;

4、设置点击Notification后的触发事件
//通过Intent,使得点击Notification之后会启动新的Activity
Intent i = new Intent(nowContext, AnotherActivity.class);
//该标志位表示如果Intent要启动的Activity在栈顶,则无须创建新的实例
i.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
pendingIntent = PendingIntent.getActivity(nowContext, 100, i, PendingIntent.FLAG_UPDATE_CURRENT);

5、设置Notification在通知栏里的样式
(1)系统默认样式
//API 11以下:
note.setLatestEventInfo(nowContext, “take me to your heart”, “Micheal learn to rock”, pendingIntent);

//API 16及以上,build()方法要求API 16及以上
//一会API 11以上,一会API16以上,我也很想知道Android的API是怎么设计的
note = builder.setContentIntent(pendingIntent).setContentTitle(“title”).setContentText(“text”).build();

(2)自定义样式:
自定义样式,就是让Notification在通知栏显示成自定义的xml布局
应当注意的是,Notification的自定义样式,只支持以下可视组件:
FrameLayout, LinearLayout, RelativeLayout
TextView, Button, AnalogClock, ImageView, ImageButton, Chronometer, ProgressBar

RemoteView view = new RemoteView(nowActivity.getPackageName(), R.layout.note_layout);
//API 11以下
note.contentView = view;
note.contentIntent = pendingIntent;
//API 16及以上,又是build()方法导致的,汗。。
note = builder.setContent(view).setContentIntent(pendingIntent).build();
这个步骤里有一个很值得注意的地方:pendingIntent被设置为note的contentIntent的值,就意味着点击了这个通知才会触发该Intent。
那么如果只是想让自定义布局里的某个按钮触发呢?比如说,弄了一个音乐播放器,Service负责播放音乐,Notification显示当前播放进度和一些简单的暂停按钮、上一首、下一首按钮,让用户不用再打开界面就可以通过Notification上的按钮操纵音乐播放。
假设说想让自定义布局里的一个id为R.id.button1的按钮来触发这个Intent,可以如下操作:
view.setOnClickPendingIntent(R.id.button1, pendingIntent);//在上面创建RemoteView实例后加上这句
然后注意,pendingIntent已经绑定到按钮上了,上面Notificatiion实例中,设置contentIntent的语句要去掉。

6、发布该通知,第一个参数为该notification的ID
noteMng.notify(10, note);

PS:这个是我自己敲的一个txt文件,在我电脑里,可能一些变量名什么的会敲错。
但是大概步骤跟方法相信已经说清楚了。


安卓6.0-7.0-8.0自定义通知 安卓6.0-7.0-8.0自定义通知 安卓6.0-7.0-8.0自定义通知 安卓6.0-7.0-8.0自定义通知 立即下载

相关推荐

金融科技数据源

数字金融开放研究平台

平平淡淡,戒急用忍,一生学闭嘴。 1758

Android中的注解

我们在很多三方库的源码中都看到注解,注解它不能改变我们的代码,但是注解提供了很多代码外的额外信息,这片文章主要来总结下我们平时在Android开发中用到的一些注解: java中的注解 1.系统内置标准注解 Override Override表示标注的方法已经重载了父类的方法。同时也起到了一个断言的作用。比如我们写了一个跟父类方法名称一样的方法时而没有标注Override的时候,编译器通...

laibowon的专栏 418

避坑指南:Qt5.14.2 ARM交叉编译中那些你可能遇到的‘坑’及解决方案

本文深度解析了Qt 5.14.2在ARM架构上进行交叉编译的完整流程与常见难题。重点阐述了如何精准匹配交叉编译器与目标板环境、正确配置sysroot以及使用configure参数的艺术,并针对编译过程中的头文件缺失、链接错误等典型“坑”提供了经过验证的解决方案,旨在帮助开发者成功构建适用于嵌入式设备的Qt运行时库。

weixin_29279101的博客 352

安卓新版本handle过期deprecated警告解决方法

更新后使用handle会出现如下警告 ‘Handler()’ is deprecated,看了下别人的博客,似乎为了解决隐式选择Looper的Bug 解决办法 方法一: 忽略警告 可以在类名前加上 @SuppressWarnings(“deprecation”); 方法二: 将代码替换为如下 Handler handler = new Handler(Looper.getMainLooper()){ @SuppressLint("HandlerLeak") @Override pu

qq_45796133的博客 5227

电力电子技术(13)——大功率可控整流电路

目录引言2.6.1 带平衡电抗器的双反星形可控整流电路电路结构的特点接平衡电抗器的原因平衡电抗器使得两组三相半波整流电路同时导电的原理分析谐波分析2.6.2 多重化整流电路概述原理目标1)移相多重联结2)多重联结电路的顺序控制3重晶闸管整流桥顺序控制带平衡电抗器的双反星形可控整流电路(是多重化整流电路的重要形式之一)的特点:适用于低电压、大电流的场合。多重化整流电路的特点:绕组的极性相反的目的:消除直流磁通势如图所示,虽然两组相电流的瞬时值不同,但是平均电流相等而绕组的极性相反,所以直流安匝(电流*匝数)互

weixin_45589295的博客 1万+

ARM双核锁步DCLS Lockstep技术研究(FPGA实现)

基于《Applying Dual-Core Lockstep in Embedded Processors to Mitigate Radiation-induced Soft Errors》文章总结 RISC-V双核锁步DCLS Lockstep技术参考之前文章: RISC-V双核锁步DCLS Lockstep技术总结_远古架构师alanwu的博客-优快云博客https://blog.youkuaiyun.com/heyuming20062007/article/details/123329537ARM+RIS

heyuming20062007的博客 8727

Android中@Deprecated 标签的作用

@Deprecated 标签的作用是是使一个变量名或者类、方法名中间画上黑粗横线表示已过期

成信物联星的学习笔记 3109

Ubuntu系统下搭建QtCreator开发环境详细过程(Qt简介;Linux下安装QtCreator;Ubuntu安装后闪退蓝屏的解决方法)

Qt 是一个跨平台的 C++开发库。主要用来开发图形用户界面 (Graphical User Interface,简称 GUI) 程序。Qt 支持的操作系统有很多,例如通用操作系统 Windows、Linux、Unix、智能手机系统Android、ios、WinPhone, 嵌入式系统 QNX、VxWorks 等。

分享学习成长历程,Winter is coming! 8556

在android studio中运行java文件遇到的一个问题“Deprecated Gradle features were used in this build

android studio运行java代码遇到的gradle版本问题和无法找到main函数问题解决方法

qq_42808154的博客 2715

论文学习:Towards Automated Infographic Design:Deep Learning-based Auto-generation of Extensible Timeline

title: “Towards Automated Infographic Design:Deep Learning-based Auto-generation of Extensible Timeline” tags: [“论文评述”, “报告”] date: 2019-08-22 author: 叶慧 mathjax: true 论文:Towards Automated Infograph...

xiaoyehahaha的博客 731

单细胞数据pseudobulks差异分析实战:从聚合到DESeq2

本文详细介绍了单细胞转录组数据分析中pseudobulks(伪散装)方法的实战流程。通过将同一样本的同类型细胞表达值聚合,模拟Bulk RNA-seq数据,再利用DESeq2进行稳健的差异基因分析。该方法有效降低了单细胞数据的技术噪音,特别适用于样本量有限但追求结果稳定性的研究场景,并提供了完整的R代码实现与结果解读指南。

sea99的博客 761

Android修炼系列(八),你真的会写注释吗?

网上学习 Android的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。我搜集整理过这几年字节跳动,以及腾讯,阿里,华为,小米等公司的面试题,把面试的要求和技术点梳理成一份大而全的“ Android架构师”面试 Xmind(实际上比预期多花了不少精力),包含。网上学习 Android的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

2401_83329718的博客 525

PyTorch实战:卷积神经网络详解+Python实现卷积神经网络Cifar10彩色图片分类

PyTorch可以说是三大主流框架中最适合初学者学习的了,相较于其他主流框架,PyTorch的简单易用性使其成为初学者们的首选。这样我想要强调的一点是,框架可以类比为编程语言,仅为我们实现项目效果的工具,也就是我们造车使用的轮子,我们重点需要的是理解如何使用Torch去实现功能而不要过度在意轮子是要怎么做出来的,那样会牵扯我们太多学习时间。以后就出一系列专门细解深度学习框架的文章,但是那是较后期我们对深度学习的理论知识和实践操作都比较熟悉才好开始学习,现阶段我们最需要的是学会如何使用这些工具。

master_hunter的博客 8933

【Android】Notification 的基本使用

简单介绍了Android中通知的使用(Android 15)

LiuYaoheng的博客 1748

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Android Notification学习

  Notication就是通知,用在有电话,短信时,在手机提示栏中出现一个小图标,提示用户去处理这个通知。   Notication有两种视图模式,即普通模式和大图模式,这里就只讲普通模式。      正如上图所示,在通知栏的Notification中,1代表的是标题,2的是大的icon(貌似这里要是位图),3的是文本,4的是一些额外的信息,5的是小的icon,6的是通知的时间。...

229

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

Android之通知Notification基础知识及适配总结

1、创建一个NotificationManager对象 NotificationManager mManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); //通知时通过系统服务来管理通知内容,因此要获取系统服务 2、创建Notification对象 Notification notification = ne...

qq_43139259的博客 1873

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

Android Notification的使用

点击按钮实现弹窗通知 @Override public void onClick(View view) { switch (view.getId()) { case R.id.send_notice: //创建点击后跳转页面intent Intent intent = new Inten...

Zhu的博客 376

Android基础—Notification(状态栏通知)详解

Version:1.0 StartHTML:0000000176 EndHTML:0000125910 StartFragment:0000024671 EndFragment:0000125870 SourceURL:file:///Y:\Desktop\学习\新建文件夹\notification.docx Android基础—Notification(状态栏通知)详解 Notificati...

weixin_40193331的博客 1865

Android通知(Notification)进阶技巧

Android通知(Notification)进阶技巧

Android应用开发工程师 993

Android发送Notification

在一个传统APP开发中,遇到一个这样的需求:当点击了Home退出了应用APP之后,但是APP还是在系统后台运行,当有消息发送到APP时,要在状态栏提醒用户收到了新的Message。此时,就用到了Android发送Notification这功能。          Notification是消息,需要NotificationManager 这个类来发送,NotificationManager是手机

zyxNobita专栏 688

Android的通知功能Notification

通知(Notification)是Android系统比较有特色的功能。当某个应用需向用户提示某些信息,而该应用又不在前台运行,就可以借助通知(Notification)实现。发出一条通知后,手机的状态栏会显示一条通知,下拉可以看到通知的详情,当然可以实现点击通知后跳转到某个页面。 通知Notification的基本用法: 通知可以在活动、广播接收器、服务中创建。在活动中创建通知比较少,因为一般...

LJW874362735的博客 570

android 横幅弹出权限,有关 android studio notification 横幅弹出的功能没有反应

小妹在这里已经卡了2-3天了,研究了很多人的文章,除了低版本api 17有成功外,其他的不是channel null 就是没反应 (channel null已解决)拜托各位大大,帮小妹一下,以下是我的程式跟 gradle, 我在这里卡好久又没有人可问(哭)![image](/img/bVcL0Qo)public class MainActivity extends AppCompatActivit...

weixin_30386973的博客 627

你真的了解Android Notification吗?

最近时不时地有人问我这样或那样的通知如何实现,所以本文将根据个人经验对Notification做个总结,以供参考! 什么是通知(Notification) 通知是一个可以在应用程序正常的用户界面之外显示给用户的消息。 通知发出时,它首先出现在状态栏的通知区域中,用户打开通知抽屉可查看通知详情。...

choubei0124的博客 151

Android中的通知Notification介绍和自定义Notification

1.Notification介绍 Notification通过NotificationManager可以往状态栏中发送通知。 在API Level 11之前构造一个Notification如下: 大致过程: 1.实例化一个Notification对象notify 2.给notify赋值,从icon到notify.setLatestEventInfo() 3.用Notificatio

+U 1276

安卓项目中 gradle 文件使用技巧小结

安卓项目中 gradle 文件使用技巧小结 下载加速 Android studio 下载东西太慢了,可以试试阿里云的仓库,在项目的 gradle 文件中配置: buildscript { repositories { //jcenter() maven{ url'http://maven.aliyun.com/nexus/content/groups/public/' } maven{ url'http://maven.aliyun.com/nexus

silencefly的博客 906
上一篇: Android-Handler复习(一)
下一篇: 蓝桥杯历届-奇怪的数列
Kid_TH
博客等级 码龄12年 110粉丝 204原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值