Android使用通知

  • 一、通知的简介
  • 二、通知的用法
    • 1.通知的基本用法
    • 2.通知的进阶用法
    • 3.通知的高级用法

一、通知的简介

通知(Notification)是Android系统中比较有特色的一个功能,当某个应用程序希望向用户发出提示信息,而该应用程序又不在前台程序运行时,就可以借助通知来实现。发出一条通知后,手机最上方的状态栏中会显示一个通知的图标,下拉菜单状态栏后可以看到通知的详细内容。Android的通知功能获得了大量用户的认可和喜爱,就连IOS 5.0以后也加入了相关的功能。

二、通知的用法

1.通知的基本用法

无论是在哪里创建通知,整体的步骤都是相同的,下面我们来学习一下创建通知的详细步骤。
1)首先需要一个 NotificationManager 来对通知进行管理,可以调用ContextgetSystemService() 方法来获取到。getSystemService()方法接收一个字符串参数用于确定获取系统的哪个服务,这里我们传入 Context.NOTIFICATION_SERVICE 即可。因此获取NotificationManager的实例就可以写成:

NotificationManager manager =      (NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);

2)接下来需要使用一个Builder构造器来创建Notification对象。support-v4 库中提供了一个NotificationCompat 类,使用这个类的构造器来创建Notification对象,就可以保证我们的程序在所有Android系统版本上都能正常工作,代码如下所示:

Notification notification = new NotificationCompat.Builder(context)                                  .setContentTitle("This is content title")                                  .setContentText("This is content text")                                  .setWhen(System.currentTimeMillis())                                  .setSmallIcon(R.drawable.small_icon)                                  .setLargeIcon(BitmapFactory                         .decorateResource(getResources(),R.mipmap.ic_laucher))                                  .build();
方法名 功能
setContentTitle 指定通知的标题内容
setContentText 指定通知的正文内容
setWhen 指定通知被创建的时间
setSmallIcon 设置通知的小图标
setLargeIcon 设置通知的大图标
bulid 创建通知

以上工作完成后,只需要调用NotificationManager的**notify()**方法就可以让通知显示出来。

notify():接收两个参数
第一个参数是 id,保证每个通知的 id 都是不同的
第二个参数是 Notification对象,直接将上面创建的Notification对象传入即可

因此,显示一个通知就可以写成:

manager.notify(1,notification);

具体实现:

新建一个NotificationTest项目,并修改activity_main.xml中的代码,如下所示:

<?xml version="1.0" encoding="utf-8"?>        

现在我们来优化一下NotificationTest项目,给刚才的通知加上点击功能,让用户点击它的时候可以启动另一个活动。我们创建notification_layout.xml:

<?xml version="1.0" encoding="utf-8"?>        

这样就把NotificationActivity这个活动准备好了,下面我们修改MainActivity中的内容,给通知加入点击功能,如下:

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

然后在NotificationCompat.Builder的后面加上 setContentIntent(pi);

最后,我们再来实现通知取消的功能。方法有两种:
一是NotificationCompat.Builder后在连缀一个 setAutoCancel() 方法
二是显式调用 NotificationManager的 cancel() 方法将它取消:

NotificationManager manager = (NotificationManager)               getSystemService(NOTIFICATION_SERVICE);               manager.cancel();

2.通知的进阶用法

继续观察NotificationCompat.Builder这个类,可以发现有许多API我们没有用到,接下来列举几种常用的通知API。

方法 功能
setSound 设置通知的声音提示
setVibrate 设置通知时手机的震动
setLights 设置手机LED灯闪烁
setDefault 设置通知的默认样式

setVibrate 手机震动需要在AndroidManifest.xml文件当中加入如下声明:

3.通知的高级用法

(一)当我们使用 setContentText 时候,会发现当出现长文字,导致在通知栏当中文本内容被省略了,此时可以用到 setStyle() 的方法:

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

而在通知栏当中加入大图片可以用类似的方法:

....setStyle(new NotificationCompat.BigPictureStyle().bigPicture(BitmapFactory         .decorateResource(getResources(),R.drawable.big_image))).build();

以上就是 setStyle() 方法的重要内容了

(二)setPriority() 方法可以设置通知的重要程度。
setPriority() 接收一个参数来设置这条通知的重要程度,分别为以下五种:

参数 功能
PRIORITY_DEFAULT 默认的重要程度,和不设置是一样的
PRIORITY_MIN 最低的重要度
PRIORITY_LOW 较低的重要度
PRIORITY_HIGH 较高的重要度
PRIORITY_MAX 最高的重要度

设置的代码如下所示:

....sePriority(NotificationCompat.PRIORITY_MAX ).build();

以上便是Android系统通知的设置方法

参考:
《第一行代码-Android(第2版)》

原文链接:https://blog.csdn.net/BarongDog/article/details/90709116

更多相关文章

  1. android不将apk包编译到系统里的方法
  2. Android、iOS添加子视图方法比较
  3. 对Android 平台下SElinux的理解及遇到过的相关问题解决方法总结
  4. Android同步方法中异步操作获取返回值。
  5. 集成Android 科大讯飞免费在线语音合成播报功能(附源码)

随机推荐

  1. Android(安卓)轻松实现语音识别
  2. android 操作sdcard中的多媒体文件(一)——
  3. Android使用Intent Filter来响应隐式Inte
  4. Android深度探索(卷1):安装C/C++交叉编译环
  5. 在 Kotlin 中使用 Logger 打印 OkHttp 网
  6. android使用Intent实现页面跳转--startActi
  7. drawable属性
  8. android中Invalidate和postInvalidate的
  9. Android应用程序注冊广播接收器(registerR
  10. 【Android游戏开发十六】Android(安卓)Ge