Android创建通知

您所在的位置:网站首页 android创建对象 Android创建通知

Android创建通知

2023-08-11 00:13| 来源: 网络整理| 查看: 265

目录 简介初级使用添加支持库创建基本通知 进阶用法高阶使用

简介

通知是指 Android 在应用的界面之外显示的消息,旨在向用户提供提醒、来自他人的通信信息或应用中的其他实时信息。用户可以点按通知来打开应用,也可以直接在通知中执行某项操作。 在android8.0之前,多个通知,无论是不是同一个一个应用的通知,逐个划分下来,占满了屏幕,不太友好。在8.0后加入了通知渠道,方便了对通知的管理。

初级使用 添加支持库

虽然使用 Android Studio 创建的大部分项目包含使用 NotificationCompat 所必需的依赖项,但您还是应该验证模块级 build.gradle 文件是否包含以下依赖项:

dependencies { implementation "com.android.support:support-compat:28.0.0" }

即当我们的NotificationCompat 不可用时,我们需要添加如上库,但一般的编译器的支持库中有 NotificationCompat的依赖,所以不用添加,比如Android stdio可不添加如上依赖库。

创建基本通知

最基本、精简形式(也称为折叠形式)的通知会显示一个图标、一个标题和少量内容文本。 在这里插入图片描述 1.创建NotificationManager对通知进行管理

//获取NotificationManager实例 NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);

2.创建渠道并设置重要性 在 Android 8.0 及更高版本上使用通知,必须先通过向 createNotificationChannel() 传递 NotificationChannel 的实例在系统中注册应用的通知渠道

if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.O){ //通知渠道的name,自己设定 String name = getString(R.string.channel_name); //通知渠道的id String id = "my_channel_01"; NotificationChannel channel = new NotificationChannel(name,id, NotificationManager.IMPORTANCE_DEFAULT); manager.createNotificationChannel(channel); } 参数说明id通知渠道的ID,用户不可见,实例化Notification的时候需要用到name这个是方便用户管理通知用的,用户可见重要性渠道优先级

注:如果这个ID在实例化Notification的时候没有对应的上,通知栏无效,系统则将Toast放入一个错误*(软件不会闪退)* 3.设置通知内容 这里设置了一些列set方法可设置通知的各种参数

Notification notification = new NotificationCompat.Builder(MainActivity.this,"my_channel_01") .setContentTitle("My notification") //设置标题 .setContentText("Hello World!") //设置正文 .setWhen(System.currentTimeMillis()) //设置被创建的时间 .setSmallIcon(R.mipmap.ic_launcher) //设置通知的小图标 .setAutoCancel(true) //点击时通知取消 .setLargeIcon(BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher)) //设置通知的大图标 .build();

4.设置点击事件 先用Intent表达出我们想要启动的活动的意图,然后再把构建好的Intent对象传到PendingIntent的getActivity中。

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

在NotificationCompat.Builder中添加

.setContentIntent(pi) //设置通知点击

5.显示通知

manager.notify(1,notification); 进阶用法

注意:NotificationChannel 的配置会覆盖 Notificaition.Builder 的配置在使用了 NotificationChannel 之后,关于震动、声音、呼吸灯的设置都需要在 NotificationChannel 中进行设置

1.设置声音,震动,呼吸灯等

//配置通知出现时的闪灯(如果 android 设备支持的话) channel.enableLights(true); //设置灯的颜色 channel.setLightColor(Color.WHITE); channel.setVibrationPattern(new long[]{100, 200, 100, 200}); //设置震动 //channel.setSound() //提供一个Uri,用于在通知发布到此频道时播放声音 if( channel.canBypassDnd() ) //检测是否绕过免打扰模式 channel.setBypassDnd(true); //设置绕过免打扰模式 if(channel.getLockscreenVisibility()==Notification.VISIBILITY_PUBLIC){ channel.setLockscreenVisibility(Notification.VISIBILITY_SECRET); //设置在锁屏界面上显示这条通知 }

2.创建富文本通知内容 正常情况下通知内容如果长度太长,会自动压缩,可通过setStyle()来弥补这种缺陷,显示长文字

.setStyle(new NotificationCompat.BigTextStyle().bigText("abcgfhkhhahhhwhjgjgjgjgjkagjgdguagdiawdyid"));

3.显示大图

.setStyle(new NotificationCompat.BigPictureStyle().bigPicture( BitmapFactory.decodeResource(getResources(),R.mipmap.ic_launcher))) 高阶使用


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3