Android通知的基本用法及进阶和高级用法

本文详细介绍Android中Notification的创建与管理过程,包括基本用法、进阶功能及高级特性。从NotificationManager的使用到PendingIntent的设置,再到通知的个性化定制如设置铃声、震动和灯光等,最后探讨了通知的重要程度设置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、基本用法

1、需要一个NotificationManager来对通知进行管理。

可以通过调用Context的getSystemService()方法获取到。

Notification managet=(NotificationManager)
getSystemService(Context.NOTIFION_SERVICE):

2、接下来需要使用一个Builder构造器来创建Notification对象

Notification notification=new NotificationCompat.Builder(context)
.setContentTitle("This is content title")//用于指定标题内容
.setContentText("This is content text")//用于指定正文内容
.setWhen(System.currentTimeMillis())//用于指定通知被创建的时间,以毫秒为单位。
.setSmallIcon(R.drawble.small_icon)//用于设置小图标,小图标会显示再系统状态栏上。
.setLargeIcon(BitmapFactory.decodeResource(getResources(),R.drawble.large_icon))//用于设置通知的大图标。当下拉系统状态栏就可以看到大图标。
.build();//此方法前可以连缀多组设置方法来创建一个丰富的Notification

3、以上工作完成后。只需要调用NotificationManager的notify()方法就可以让通知显示出来了。

manager.notify(1,notification);//第一个参数是id,要保证每个通知所指定的id都是不同的。第二个参数则是Notification对象

4、通知点击事件

·PendingIntent:可以理解为延时执行的Intent。

·获取PendingIntent的方法:getActivity(),getService(),getBroadcast().

     这些方法所接收的参数是相同的,第一个Context,第二个通常传入0,第三个Intent对象。第四个一般传入0.

构建所需要的Intent将其传入获取PendingIntent的方法中,然后在构建Notification对象的语句中连缀setContentIntent(intent)

Intent intent=new Intent(this,Notification.class);
PendingIntent pi =PendingIntent.getActivity(this,0,intent,0);

5、取消通知的方法。

1)在构造Notification对象的方法里连缀.setAutoCancel(true);

2)活动的活动onCreate()里添加 

NoticationManager manager=(Notification)getSystemService(NOTIFICATION_SERVICE);
manager.cancel(1);//这里传入要取消的通知的id

二、活动的进阶用法

.setSound(Uri.fromFile(new File("/System/media/audio/ringtones/Luna.ogg)))//设置铃声
.setVibrate(new long[] {0,1000,1000,1000})//设置震动 第一个元素:静止时长(ms) 第二个:振动时长(ms)然后又是静止以此类推。
.setLights(Color.GREEN,1000,1000)//第一个颜色 第二个亮起时长 第三个暗下去的时长。
.setDefaults(NotificationCompat.DEFAULT_ALL)//如果不想进行如此复杂的操作。可以设置成默认效果。会根据手机的环境决定播放什么。

三、活动的高阶功能

富文本内容可以显示长段文本;

setStyle(new NotificationCompat.BigTextStyle().bigText("Learn how to build..............................8***********************.."))
//还可以显示大图片哦
setStyle(new NotificaitonCompat.BigPictureStyle().bigPicture(BitmapFactory.decodeResource(getResources(),R.drawable.big_image)))

设置通知的重要程度。

setPriority()

参数以及其对应属性:

PRIORITY_MIN最低的重要程度。

PRIORITY_LOW较低的重要程度。

PRIORITY_DEFAULT和不设置的效果一样

PRIORITY_HIGH表示较高的重要程度,处于较前位置,系统会将此类通知放大。

PRIORITY_MAX最高重要程度 无论处于游戏 电影中都将接收到放大通知。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值