Android 通知——Android筑基

通知notification是Android中一个很有特色的功能,当某一个app希望向用户通知一些信息,并且该信息并没有在前台运行,就可以使用通知功能实现。


通知基本用法

不管是在哪里创建的通知,整体步骤大体相同,下面介绍创建通知的具体步骤;

  • 首先创建一个NotificationManager来对通知进行管理,可以调用ContextgetSystemService方法获取。
  • getSystemService方法接受字符串确定获取系统的某个服务,传入**getSystemService(NOTIFICATION_SERVICE);**即可。

实例代码如下:

NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
  • 接下来创建一个Notification对象。存储通知所需要的各种信息,利用其有参构造函数实现创建。

Notification有参构造包含三个接受参数:

  1. 第一个指定通知图标,一般是drawable资源目录。
  2. 第二个参数指定通知ticker内容,通知刚被创建时,会在系统状态栏一闪而过,一种瞬态信息。
  3. 第三个参数指定通知被创建的时间,毫秒ms为单位。

给出实例代码:

Notification.Builder builder1 = new Notification.Builder(MainActivity.this);
//设置图标
builder1.setSmallIcon(R.drawable.ic_launcher_background);
builder1.setTicker("显示第1个通知");
//设置标题
builder1.setContentTitle("通知");
//消息内容
builder1.setContentText("点击查看详细内容");
//发送时间
builder1.setWhen(System.currentTimeMillis());

创建好通知notification对象之后,需要对通知布局设定,调用Notification的setLatestEventInfo方法可以给通知设定一个标准布局,该方法接受4个参数:

  1. 第一个参数Context。
  2. 第二个参数指定通知标题内容。
  3. 第三个参数指定通知正文内容。
  4. 第四个参数暂时填null都行。

实例代码:

NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
otification.Builder builder1 = new Notification.Builder(MainActivity.this);
//设置图标
builder1.setSmallIcon(R.drawable.ic_launcher_background);
builder1.setTicker("显示第1个通知");
//设置标题
builder1.setContentTitle("通知");
 //消息内容
builder1.setContentText("点击查看详细内容");
 //发送时间
 builder1.setWhen(System.currentTimeMillis());
//设置默认的提示音,振动方式,灯光
builder1.setDefaults(Notification.DEFAULT_ALL);
 //打开程序后图标消失
 builder1.setAutoCancel(true);

PendingIntent通知意图

PendingIntent 从名字上看起来就和 Intent 有些类似,它们之间也确实存在着不少共同点。比如它们都可以去指明某一个“意图”,都可以用于启动活动、启动服务以及发送广播等。不同的是,Intent 更加倾向于去立即执行某个动作,而 PendingIntent 更加倾向于在某个合适的时机去执行某个动作。所以, 也可以把 PendingIntent 简单地理解为延迟执行的 Intent

PendingIntent用法使用一样简单,提供了几个静态方法用于获取PendingIntent的实例,根据需求选择使用getActivity方法、getBroadcast方法、或者是getService方法。

上述几个方法所利用的参数一致:

  1. 第一个仍然是Context。
  2. 第二个一般用不到,传入null即可。
  3. 第三个是Intent意图对象,根据该对象构建PendingIntent意图

给出实例代码:

Intent intent = new Intent(MainActivity.this, NotificationActivity.class);
PendingIntent pendingIntent = PendingIntent.getActivity(MainActivity.this, 0, intent, 0);
builder1.setContentIntent(pendingIntent);
Notification notification1 = builder1.build();
 // 通过通知管理器发送通知
notificationManager.notify(1, notification1);

运行截图

平台:夜神模拟器

在这里插入图片描述

在这里插入图片描述

完整代码

请见gitee仓库链接:notification

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值