Android Studio 学习笔记(6)--通知

原创
2021/06/28 16:04
阅读数 690

通知

通知是应用程序向用户发出的提示信息。当程序不再前台运行时,可以借助通知来实现。

创建通知的步骤

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

NotificationManager manager=(NotificationManager)getSystemService(NOTIFICATION_SERVICE);

2、使用一个Builder构造器来创建Notification对象。为解决兼容性使用support库 support-v4库的NotificationCompat类

Notification notification= new NotificationCompat.Builder(this,"001")
        .setContentTitle("标题") //指定通知的标题
        .setContentText("内容")//指定通知的内容,文字显示一行,超出自动显示省略号,使用setStyle()可多行显示
        .setWhen(System.currentTimeMillis())//指定通知被创建的时间,以毫秒为单位
        .setSmallIcon(R.mipmap.ic_launcher)//设置通知的小图标,注意只能使用纯alpha图层的图片进行设置。
        .setLargeIcon(BitmapFactory.decodeResource(getResources(),R.mipmap.ic_launcher))//当下拉系统状态栏时,可以看到的图标。
        .build();
manager.notify(1,notification);

响应此通知的方法PendingIntent,可以理解为延迟执行的Intent。它主要提供几个静态方法用于获取PendingIntent实例,可以根据需求来选择使用getActivity()方法、getBroadcast()方法,还是getService()方法。

Intent intent=new Intent(this,NotificationActivity.class);
PendingIntent pi=PendingIntent.getActivities(this,0, new Intent[]{intent},0);
NotificationManager manager=(NotificationManager)getSystemService(NOTIFICATION_SERVICE);
Notification notification= new NotificationCompat.Builder(this,"001")
        .setContentTitle("标题").setContentText("内容").setWhen(System.currentTimeMillis()).setSmallIcon(R.mipmap.ic_launcher)
        .setLargeIcon(BitmapFactory.decodeResource(getResources(),R.mipmap.ic_launcher))
        .setContentIntent(pi)
        .build();
manager.notify(1,notification);

此时,点击通知会跳转到NotificationActivity界面。但是会发现通知依然在通知栏显示,并未取消掉。此处提供两种方法

1.setContentIntent(pi)后连缀一个setAtuoCancel(true)

2.在响应页面onCreate中主动撤销

NotificationManager manager=(NotificationManager)getSystemService(NOTIFICATION_SERVICE);
manager.cancel(1);
.setSound(Uri.fromFile(new File("/system/media/audio/ringtones/Ding.ogg"))) //播放声音
.setVibrate(new long[]{0,1000,1000,1000})//震动
.setLights(Color.GREEN,1000,1000)//闪烁
.setAutoCancel(true) //查看自动取消显示
.setDefaults(NotificationCompat.DEFAULT_ALL) //不做设定,全部按手机默认的来

使用setStyle()方法接收NotificationCompat.Style参数来构建具体的富文本信息,如长文字、图片等等。

.setStyle(new NotificationCompat.BigPictureStyle().bigPicture(BitmapFactory.decodeResource(getResources(),R.drawable.ic_launcher_background)))
.setStyle(new NotificationCompat.BigTextStyle().bigText("超长文本超长文本超长文本超长文本超长文本超长文本超长文本超长文本超长文本超长文本超长文本超长文本超长
文本超长文本超长文本超长文本超长文本超长文本超长文本超长文本"))

setPriority()方法,设置通知的重要程度,分为五级

NotificationCompat.PRIORITY_MIN
NotificationCompat.PRIORITY_LOW
NotificationCompat.PRIORITY_DEFAULT
NotificationCompat.PRIORITY_HIGH
NotificationCompat.PRIORITY_MAX

展开阅读全文
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部