Android通知的使用详解

一、通知的基本概念

通知是Android系统中最常用的功能之一,能够在应用程序运行时,利用Android系统提供的通知管理器组件推送一些重要信息到状态栏上,以方便用户在不打断其它正在进行的操作的情况下及时获取到这些信息。Android通知的作用不仅在于提醒,还可以使用通知栏提供的各种点击方式让用户快速进入应用程序中的某个特定界面。

二、通知的使用步骤

Android通知的使用步骤有三步:

1、创建一个通知对象,通常是开发者需要提供一些通知基本信息,例如通知的标题、内容、图标等等。

2、调用 NotificationManager 的 notify() 方法将通知对象显示到状态栏上。

3、如果需要定制通知的行为,则可以为通知绑定一个 PendingIntent 对象, PendingIntent 对象可以在用户点击通知后跳转到应用程序中的某个指定 Activity 或 Service 中。

三、创建通知对象的详细步骤

以下是创建通知对象的详细步骤:

1、创建 NotificationCompat.Builder 对象

NotificationCompat.Builder builder = new NotificationCompat.Builder(this, channelId);

其中 this 是当前 Activity 对象,channelId 是应用程序内部使用的通知渠道 ID,用于区分通知的种类。

2、设置通知的基本信息

builder.setContentTitle("通知标题")
        .setContentText("通知内容")
        .setSmallIcon(R.mipmap.ic_launcher)
        .setLargeIcon(BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher_round))
        .setAutoCancel(true)
        .setContentIntent(pendingIntent);

其中 setContentTitle() 设置通知的标题,setContentText() 设置通知的内容,setSmallIcon() 设置通知栏中通知的小图标, setLargeIcon() 设置通知栏中通知的大图标, setAutoCancel() 在用户点击通知后自动消失, setContentIntent() 为通知设置 PendingIntent。

3、创建 Notification 对象

Notification notification = builder.build();

4、调用 NotificationManager 的 notify() 方法显示通知

notificationManager.notify(notificationId, notification);

其中 notificationId 是通知的编号,用于区分不同的通知。

四、通知的进阶用法

以上是基本应用的通知实现,通常作为一款优秀的应用,在通知的实现上,可以进行更多的扩展。

1、设置通知的优先级

builder.setPriority(NotificationCompat.PRIORITY_DEFAULT);

setPriority() 方法用于设置通知的优先级,可以取以下的值:

  • PRIORITY_HIGH:高优先级,会在状态栏中显示,并发出提示音。
  • PRIORITY_DEFAULT:默认优先级,会在状态栏中显示,但不会发出提示音。
  • PRIORITY_LOW:低优先级,不会在状态栏中显示,但会被折叠在通知抽屉中。
  • PRIORITY_MIN:最低优先级,不会在状态栏中显示,只会在通知抽屉中显示。
  • PRIORITY_MAX:最高优先级,显示在状态栏中并发出提示音。

2、设置通知的声音和震动

Uri alarmSound = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);    
builder.setSound(alarmSound);
builder.setVibrate(new long[] {0, 1000, 1000, 1000});

setSound() 方法用于设置通知的提示音, setVibrate() 方法用于设置通知的震动模式。

3、设置通知的灯光

builder.setLights(Color.GREEN, 2000, 1000);

setLights() 方法用于设置通知的 LED 灯的颜色、亮起时长和灭掉时长。

4、设置通知的样式

NotificationCompat.InboxStyle inboxStyle = new NotificationCompat.InboxStyle();
inboxStyle.setBigContentTitle("五条通知");
for (String content : messageList) {
    inboxStyle.addLine(content);
}
builder.setStyle(inboxStyle);

可以使用 NotificationCompat.Builder 的 setStyle() 方法为通知定义不同的样式。Android 系统提供了以下样式:

  • BigPictureStyle:展示一张大图。
  • InboxStyle:可以展示多行文本。
  • MessagingStyle:展示来自不同人的多个消息。
  • MediaStyle:展示通知与音乐播放器的集成。

五、补充说明

如需使用 Android 通知,需要在 AndroidManifest.xml 文件中声明通知权限:

<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.FLASHLIGHT" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/254511.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-14 17:42
下一篇 2024-12-14 17:42

相关推荐

  • Android ViewPager和ScrollView滑动冲突问题

    Android开发中,ViewPager和ScrollView是两个常用的控件。但是当它们同时使用时,可能会发生滑动冲突的问题。本文将从多个方面介绍解决Android ViewPa…

    编程 2025-04-28
  • Android如何点击其他区域收起软键盘

    在Android应用中,当输入框获取焦点弹出软键盘后,我们希望能够点击其他区域使软键盘消失,以提升用户体验。本篇文章将说明如何实现这一功能。 一、获取焦点并显示软键盘 在Andro…

    编程 2025-04-28
  • Java实现告警通知的全面解析与示例

    本文将从多个方面详细阐述如何使用Java实现告警通知,包括如何设置告警规则、如何获取告警信息、如何发送告警通知等。本文将给出完整的代码示例,并且介绍如何运行代码并验证效果。 一、告…

    编程 2025-04-27
  • Android Studio HUD 实现指南

    本文将会以实例来详细阐述如何在 Android Studio 中使用 HUD 功能实现菊花等待指示器的效果。 一、引入依赖库 首先,我们需要在 build.gradle 文件中引入…

    编程 2025-04-27
  • Android和Vue3混合开发方案

    本文将介绍如何将Android和Vue3结合起来进行混合开发,以及其中的优势和注意事项。 一、环境搭建 在进行混合开发之前,需要搭建好相应的开发环境。首先需要安装 Android …

    编程 2025-04-27
  • Android Java Utils 可以如何提高你的开发效率

    Android Java Utils 是一款提供了一系列方便实用的工具类的 Java 库,可以帮助开发者更加高效地进行 Android 开发,提高开发效率。本文将从以下几个方面对 …

    编程 2025-04-27
  • Linux sync详解

    一、sync概述 sync是Linux中一个非常重要的命令,它可以将文件系统缓存中的内容,强制写入磁盘中。在执行sync之前,所有的文件系统更新将不会立即写入磁盘,而是先缓存在内存…

    编程 2025-04-25
  • 神经网络代码详解

    神经网络作为一种人工智能技术,被广泛应用于语音识别、图像识别、自然语言处理等领域。而神经网络的模型编写,离不开代码。本文将从多个方面详细阐述神经网络模型编写的代码技术。 一、神经网…

    编程 2025-04-25
  • Python输入输出详解

    一、文件读写 Python中文件的读写操作是必不可少的基本技能之一。读写文件分别使用open()函数中的’r’和’w’参数,读取文件…

    编程 2025-04-25
  • nginx与apache应用开发详解

    一、概述 nginx和apache都是常见的web服务器。nginx是一个高性能的反向代理web服务器,将负载均衡和缓存集成在了一起,可以动静分离。apache是一个可扩展的web…

    编程 2025-04-25

发表回复

登录后才能评论