Notification通知将一个图标(包含一条可选的提示文本信息)填加到系统的状态栏(一般来说,Android手机的状态栏是在顶部,非底部,要注意噢)中,并将一条展开信息添加到通知窗口中。当用户选中展开信息时,Android将执行一个此通知已定义的意图Intent(通常用于弹出一个Activity)。你还可以对通知进行配置,用设备提供的声音、振动、闪光来提醒用户。

  当后台服务(Service)需要对某个事件发出提醒并且需要用户响应时,状态栏通知就能发挥作用了。后台服务从来不会启动Activity来接收用户的交互,取而代之的是应该创建一个状态栏通知,在用户点选后再由通知来启动Activity。

  Activity或者Service都能初始化一个状态栏通知。可因为Activity只有在活动状态并获得焦点时才能执行操作,所以在实际开发中使用Service来创建状态栏通知居多。这样,即使用户正在使用其他程序或者设备已经休眠时,仍然可以从后台创建通知。要创建一个通知,须用到两个类:Notification类和NotificationManager类。

  NotificationManager是一个Android系统服务,用于管理和运行所有通知。NotificationManager不能被实例化,为了把Notification传给它,你可以用getSystemService()方法获取一个NotificationManager的引用。在需要通知用户时再调用notify()方法将Notification对象传给它。

  创建Notivication通知步骤:

  (1)获取NotificationManager的引用

           NotificationManager notificationManager=(NotificationManager)super.getSystemService(Context.NOTIFICATION_SERVICE);

  (2)实例化Notification

           Notification notification=new Notification(R.drawable.ic_launcher,"Notification消息提示!",System.currentTimeMillis());

  (3)指定通知的展开信息和Intent

           PendingIntent intent=PendingIntent.getActivity(this, 0, super.getIntent(), PendingIntent.FLAG_UPDATE_CURRENT);notification.setLatestEventInfo(this, "跟我学Android","跟我学编程:www.genwoxue.com",intent);

  (4)将Notification对象传给NotificationManager

           notificationManager.notify("Genwoxue",R.drawable.ic_launcher,notification);

  如果想要发送状态栏通知,通过notify(int, Notification)传递Notification对象给NotificationManager即可。第一个参数是Notification 的唯一ID,第二个参数是Notification对象。ID在整个应用程序范围内唯一标识Notification。应用程序可能管理着多种不同的通知,在用户通过各自定义的Intent返回应用程序时必须能选择正确的动作执行之,因此上述参数是必需的。

一、设计界面

  1、布局文件

  打开res/layout/activity_main.xml文件。
  输入以下代码:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical" ><TextViewandroid:id="@+id/notifi"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="Notification通知将一个图标(包含一条可选的提示文本信息)填加到系统的状态栏(一般来说,Android手机的状态栏是在顶部,非底部,要注意噢)中,并将一条展开信息添加到通知窗口中。当用户选中展开信息时,Android将执行一个此通知已定义的意图Intent(通常用于弹出一个Activity)。你还可以对通知进行配置,用设备提供的声音、振动、闪光来提醒用户。
" /></LinearLayout>

二、程序文件

  打开“src/com.genwoxue.notification/MainActivity.java”文件。
  然后输入以下代码:

package com.genwoxue.notification;import android.os.Bundle;
import android.app.Activity;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Context;public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);NotificationManager notificationManager=(NotificationManager)super.getSystemService(Context.NOTIFICATION_SERVICE);Notification notification=new Notification(R.drawable.ic_launcher,"Notification消息提示!",System.currentTimeMillis());PendingIntent intent=PendingIntent.getActivity(this, 0, super.getIntent(), PendingIntent.FLAG_UPDATE_CURRENT);notification.setLatestEventInfo(this, "跟我学Android","跟我学编程:www.genwoxue.com",intent);notificationManager.notify("Genwoxue",R.drawable.ic_launcher,notification);  }
}

三、配置文件

  没有特殊权限要求,使用默认“AndroidManifest.xml”配置文件即可。

四、运行结果

   

  

参考文章:

  android Notification 的使用

  Android中Notification服务开发

转载于:https://my.oschina.net/u/2252134/blog/545644

第88章、系统服务之NOTIFICATION_SERVICE服务(从零开始学Android)相关推荐

  1. 第52章,bitmap图像处理(从零开始学android),第52章、Bitmap图像处理(从零开始学Android)...

    1.Drawable → Bitmap public static Bitmap drawableToBitmap(Drawable drawable) { Bitmap bitmap = Bitma ...

  2. 第8章、下拉列表框Spinner(从零开始学Android)

    在Android App应用中,下拉列表框Spinner的使用频次是相当高的,如果你对Spinner陌生,你一定不会对HTML中的SELECT陌生,他们的作用是一样的,都是多选一.我们需要学习Andr ...

  3. 第57章、录制视频(从零开始学Android)

    录制视频显然要比音频复杂点,那么我们一起看看录制视频又该如何做呢? (1)首先,我们肯定要用到摄像头,因此需要在Manifest文件中声明使用权限: <uses-permission andro ...

  4. 从零开始学android:Android中的基本控件(上)

    从零开始学android:Android中的基本控件(上) 本章内容较多,下面只贴代码,大家只需要贴到自己eclipse里就知道作用^^! View组件简介 Android中的View组件包含了几乎所 ...

  5. 从零开始学android编程_小白也能学得会!谷歌推出免费的Kotlin和Android开发课程...

    程序员书库(ID:CodingBook) 猿妹编译 链接:https://android-developers.googleblog.com/2020/07/learn-android-and-kot ...

  6. 第89章、系统服务之SMS服务(从零开始学Android)

    每逢佳节,中国移动.电信.联通都是偷偷笑的日子,又不知道多少短信费用纳入囊中,尽管微信.QQ.飞信漫天飞,但仍然阻挡不了节日祝福短信的火爆,但群发实在没有意义,你是不是想来一个既个性而又群发呢? 譬如 ...

  7. 第1章、从零开始学Android

    引子 滚滚长江东逝水 浪花淘尽英雄 是非成败转头空 青山依旧在 几度夕阳红 白发渔樵江渚上 惯看秋月春风 一壶浊酒喜相逢 古今多少事 都付笑谈中 --------------------------- ...

  8. 第15章、布局Layouts之TableLayout表格布局(从零开始学Android)

    TableLayout表格布局 TableLayout是指将子元素的位置分配到行或列中.Android的一个TableLayout有许多TableRow组成,每一个TableRow都会定义一个Row. ...

  9. android 发送彩信监听,第74章、再识Intent-调用发送彩信程序(从零开始学Android)...

    一.设计界面 1.布局文件 打开res/layout/activity_main.xml文件. 输入以下代码: xmlns:android="http://schemas.android.c ...

最新文章

  1. Elasticsearch之数据建模
  2. python:字典,元组
  3. 提高办公效率的个Excel技巧,告别苦加班!
  4. DataX在有赞大数据平台的实践
  5. QML 性能优化建议(一)
  6. boost::random模块生成随机 8 个字符密码相关的测试程序
  7. 极光尔沃切片软件_极光尔沃3D打印机走进肥东中小学校
  8. python数据挖掘 百度云,常用数据挖掘算法总结及Python实现高清完整版PDF_python数据挖掘,python数据分析常用算法...
  9. Java实现Spark-Redis,Spark 之 Redis on spark java.io.NotSerializableException
  10. Quagga:开源的基于Zebra实现了RIP, OSPF, BGP的动态路由软件
  11. extjs 关于dom操作的几个库
  12. 我的SQL相关TIPS
  13. 2018,扬帆起航!
  14. OPA2134UA IC AUDIO 2 CIRCUIT 8SOIC
  15. vscode web版,走到哪用到哪
  16. 四天搞懂生成对抗网络(一)——通俗理解经典GAN
  17. git报错error: index uses extension, fatal: index file corrupt
  18. Oracle数据库:约束条件:主键约束、唯一约束、检查约束、非空约束、外键约束、默认值填写
  19. python 脚本梦幻西游_GitHub - U200915104/mhxy_fz: 一个基于计算机视觉开发的梦幻西游辅助脚本...
  20. 度小满金融面试java_记度小满金融面试过程

热门文章

  1. Java基于ssm的大学生社团管理系统 计算机毕业设计
  2. 二级建造师继续教育留念
  3. 博客右下角的动态人物(live2d)看板娘
  4. 深圳赛意信息 怎么样_深圳自动瓶坯检查机怎么样
  5. 微信小程序连接MySQL数据库
  6. VC加载jpeg, png图片的方法
  7. GBA 开发简单入门
  8. 基于Python的Covid-19全球疫情数据分析预测 文档+项目源码及数据
  9. hive sql 向上取整、向下取整、保留小数位的函数
  10. 使用kubeadm快速部署一个K8s集群