【android开发-20】android中notification的用法讲解

这篇具有很好参考价值的文章主要介绍了【android开发-20】android中notification的用法讲解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1,notification的基本用法

在Android中,通知(Notification)是一种在状态栏上显示的消息提示,用户点击通知后可以展开更多详细信息。以下是基本的通知用法:

1,创建通知
创建通知需要使用Notification类,可以通过以下代码创建一个简单的通知:

Notification notification = new Notification.Builder(context)  
    .setSmallIcon(R.drawable.notification_icon)  // 设置小图标  
    .setContentTitle("通知标题")  // 设置标题  
    .setContentText("这是通知内容")  // 设置内容  
    .build();

2,创建通知通道
从Android 8.0开始,需要在通知中创建通知通道。通知通道用于定义通知的显示方式、声音和振动方式等。可以使用以下代码创建一个通知通道:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {  
    CharSequence name = getString(R.string.channel_name);  
    String description = getString(R.string.channel_description);  
    int importance = NotificationManager.IMPORTANCE_DEFAULT;  
    NotificationChannel channel = new NotificationChannel("channel_id", name, importance);  
    channel.setDescription(description);  
    // Register the channel with the system; you can't change the importance  
    // or other notification behaviors after this  
    NotificationManager notificationManager = getSystemService(NotificationManager.class);  
    notificationManager.createNotificationChannel(channel);  
}

3,创建通知请求
创建通知请求需要使用NotificationManager类和NotificationChannel对象。可以使用以下代码创建一个通知请求:

NotificationManager notificationManager = getSystemService(NotificationManager.class);  
NotificationChannel channel = notificationManager.getNotificationChannel("channel_id");  
if (channel != null) {  
    notificationManager.notify("notification_id", channel, notification);  
}

其中,"notification_id"是一个唯一的标识符,用于区分不同的通知;"channel_id"是之前创建的通知通道的ID;"notification"是之前创建的通知对象。

2,notification设置铃声和振动
在Android中,你可以在Notification对象中设置铃声和振动。以下是一个例子:

// 创建一个新的Notification对象  
Notification notification = new Notification.Builder(context)  
    .setSmallIcon(R.drawable.notification_icon)  // 设置小图标  
    .setContentTitle("通知标题")  // 设置标题  
    .setContentText("这是通知内容")  // 设置内容  
    .setSound(soundUri)  // 设置铃声  
    .setVibrate(new long[]{100, 200, 300, 400, 500})  // 设置振动模式  
    .build();  

在这个例子中,setSound()方法用于设置通知的铃声,参数是一个Uri对象,表示铃声文件的路径。

同样,setVibrate()方法用于设置通知的振动模式。参数是一个长整数数组,表示不同的振动持续时间。第一个元素表示第一个振动的时间,第二个元素表示第二个振动的时间,以此类推。最后一个元素表示最后一个振动的时间。振动还需要声明权限:

<uses-permission android.name="android.permission.VIBRATE">

3,notification点击事件
当用户点击Android通知时,你可以通过在Notification对象中设置Intent来启动一个活动或执行其他操作。以下是一个例子:

// 创建Intent对象以启动一个活动  
Intent intent = new Intent(context, ExampleActivity.class);  
// 添加一个额外的数据字段,以便在活动中使用  
intent.putExtra("extra_data", "This is additional data.");  
// 创建PendingIntent对象,以便稍后启动这个活动  
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);  
  
// 创建一个新的Notification对象并设置点击事件  
Notification notification = new Notification.Builder(context)  
    .setSmallIcon(R.drawable.notification_icon)  
    .setContentTitle("通知标题")  
    .setContentText("这是通知内容")  
    .setSound(soundUri)  
    .setVibrate(new long[]{100, 200, 300, 400, 500})  
    .setContentIntent(pendingIntent)  // 设置点击事件  
    .build();  
  
// 发送通知  
NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);  
notificationManager.notify("notification_id", notification);

在这个例子中,我们创建了一个Intent对象以启动名为ExampleActivity的活动。然后,我们添加了一个额外的数据字段,以便在启动活动时可以使用。接下来,我们创建了一个PendingIntent对象,以便稍后启动这个活动。最后,我们将PendingIntent对象设置为Notification对象的contentIntent属性,这样当用户点击通知时就会启动这个活动。

PendingIntent是Android中的一个类,它表示一种处于pending状态(待定、等待、即将发生)的意图。与Intent不同的是,PendingIntent是将在未来某个不确定时刻发生,而Intent是立刻发生。

PendingIntent支持三种待定意图:启动Activity、启动Service和发送广播。要得到PendingIntent的实例,必须传入一个Intent作为参数,同时还需要有Context作为参数。

当创建PendingIntent时,需要使用Context、Intent和额外的参数来创建PendingIntent对象。这些参数可以控制PendingIntent的行为。例如,可以使用getActivity()方法创建一个用于启动Activity的PendingIntent,或者使用getBroadcast()方法创建一个用于发送广播的PendingIntent。

当用户点击一个通知时,可以使用PendingIntent来启动一个活动或执行其他操作。在通知中设置PendingIntent的contentIntent属性,然后在用户点击通知时调用PendingIntent的execute()方法来启动活动。

总之,PendingIntent是一种方便的方式来在Android应用程序中执行延迟操作,例如启动活动、启动服务和发送广播等。

4,notification的取消
在Android中,取消通知可以通过使用通知的cancel()方法实现。你需要保留对通知的引用,以便稍后取消它。下面是一个简单的例子:

// 创建一个新的通知  
Notification notification = new Notification.Builder(context)  
    .setSmallIcon(R.drawable.notification_icon)  
    .setContentTitle("通知标题")  
    .setContentText("这是通知内容")  
    .build();  
  
// 发送通知  
NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);  
notificationManager.notify("notification_id", notification);  
  
// 在某个时间点,取消通知  
notificationManager.cancel("notification_id");

在这个例子中,“notification_id"是通知的唯一标识符。当你调用cancel()方法时,所有具有相同标识符的通知都将被取消。如果你想取消所有的通知,可以传递一个空字符串(”")作为标识符。

请注意,你只能在应用程序的上下文中取消通知,不能在其他应用程序的上下文中取消通知。

你的鼓励将是我创作的最大动力
【android开发-20】android中notification的用法讲解,android应用开发,android文章来源地址https://www.toymoban.com/news/detail-759935.html

到了这里,关于【android开发-20】android中notification的用法讲解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Android应用开发(1)Android Studio开发环境搭建

    Android应用开发学习笔记——目录索引 本章介绍搭建Android Studio应用开发环境,创建并编译App工程,运行和调试App。 谷歌开发者网站可直接下载AndroidStudio,下载链接:https://developer.android.com/studio 点击【Download Android Studio Electric Eel】 勾选【I have read and agree with the above terms and

    2024年02月07日
    浏览(35)
  • 【鸿蒙应用ArkTS开发系列】- http网络库使用讲解和封装

    现在网上的应用,基本都是网络应用,需要进行联网获取数据,而常用的联网获取数据的方式有http、socket、websocket等。 在鸿蒙应用、服务中,stage模式开发下,鸿蒙官方为我们提供了一个网络组件库 http ,我们通过 import http from ‘@ohos.net.http’; 即可以完成引用。 @ohos.net.http

    2024年02月15日
    浏览(44)
  • 高通平台开发系列讲解(USB篇)adb应用adbd分析

    沉淀、分享、成长,让自己和他人都能有所收获!😄 在 apps_proc/system/core/adb/adb_main.cpp 文件中main()函数会调用adb_main()函数,然后调用uab_init函数 在uab_init()函数中,会创建一个线程,在线程中会调用init_functionfs()函数,利用ep0控制节点,创建ep1、ep2输入输出节点 目录:

    2024年02月02日
    浏览(23)
  • uniapp微信小程序开发踩坑日记:onShow的应用场景及用法

    由于微信小程序是单页应用程序,所以用户在打开小程序后,只有第一次进入页面时会加载页面,之后再通过导航栏切换到相同的页面并不会导致页面重新加载 但是在某些场景下,我们希望每次用户一回到某个页面,就执行相应的函数,但因为导航栏切换页面并不会导致页面

    2024年02月21日
    浏览(28)
  • RK3568平台开发系列讲解(Linux系统篇)Linux 应用程序的安全

    🚀返回专栏总目录 沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本篇让我们如何写出尽可能安全的应用程序。

    2023年04月16日
    浏览(34)
  • Android应用开发(7)按键(Button)

    Android应用开发学习笔记——目录索引 本章介绍按钮(Button)控件的常见用法,结合前面Android应用开发(5)文本显示(TextView)介绍按钮(Button)监听点击和长按事件,禁用和启用等。 参考google官网:https://developer.android.com/reference/android/widget/Button 按钮控件Button由TextView派生

    2024年02月05日
    浏览(40)
  • Android移动应用开发的学习路线

    Android移动应用开发的学习路线。以下是一个基本的学习路线,供你参考: 1. Java基础 学习Java的基本语法和面向对象编程(OOP)的概念 了解Java的数据类型、变量和常量 学习控制结构(如条件语句、循环语句)和函数 2. Android基础 了解Android平台的基本概念和架构 学习Android的

    2024年02月11日
    浏览(36)
  • 移动应用开发环境搭建Android Studio

    记得提前开启电脑虚拟化支持,具体方法可自行百度 查看是否启用虚拟化 JDK安装与卸载 由于Andriod开发使用的语言是javaKotlin,这里使用的是java语言所以需要先安装java的开发环境 所有开发 Android 应用程序需要的工具都是开源的,并且可以从互联网上下载 Android Studio 是谷歌推

    2023年04月08日
    浏览(57)
  • Android应用开发(4)视图布局基本属性

    Android应用开发学习笔记——目录索引 本章介绍视图(View)的基本概念及其用法,包括:如何设置视图的宽度和高度,如何设置视图的外部间距和内部间距,如何设置视图的外部对齐方式和内部对齐方式等。 在Android中,什么是视图(View)?View是Android中所有控件的基类,不

    2024年02月03日
    浏览(33)
  • Flutter 开发者工具 Android Studio 开发Flutter应用

    Flutter 开发者工具 在 Android Studio 开发Flutter应用 🔥 Android Studio 版本更新 🔥 Android Studio Check for Update Connection failed ​ 解决方案 ​    ​  🔥 编辑代码,和查看问题 🔥  Dart 插件 可以做到如下几点 :  语法高亮显示。 基于多种类型分析的代码补全。 定位到类型的声明(

    2024年02月15日
    浏览(89)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包