第88章、系统服务之NOTIFICATION_SERVICE服务(从零开始学Android)
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)相关推荐
- 第52章,bitmap图像处理(从零开始学android),第52章、Bitmap图像处理(从零开始学Android)...
1.Drawable → Bitmap public static Bitmap drawableToBitmap(Drawable drawable) { Bitmap bitmap = Bitma ...
- 第8章、下拉列表框Spinner(从零开始学Android)
在Android App应用中,下拉列表框Spinner的使用频次是相当高的,如果你对Spinner陌生,你一定不会对HTML中的SELECT陌生,他们的作用是一样的,都是多选一.我们需要学习Andr ...
- 第57章、录制视频(从零开始学Android)
录制视频显然要比音频复杂点,那么我们一起看看录制视频又该如何做呢? (1)首先,我们肯定要用到摄像头,因此需要在Manifest文件中声明使用权限: <uses-permission andro ...
- 从零开始学android:Android中的基本控件(上)
从零开始学android:Android中的基本控件(上) 本章内容较多,下面只贴代码,大家只需要贴到自己eclipse里就知道作用^^! View组件简介 Android中的View组件包含了几乎所 ...
- 从零开始学android编程_小白也能学得会!谷歌推出免费的Kotlin和Android开发课程...
程序员书库(ID:CodingBook) 猿妹编译 链接:https://android-developers.googleblog.com/2020/07/learn-android-and-kot ...
- 第89章、系统服务之SMS服务(从零开始学Android)
每逢佳节,中国移动.电信.联通都是偷偷笑的日子,又不知道多少短信费用纳入囊中,尽管微信.QQ.飞信漫天飞,但仍然阻挡不了节日祝福短信的火爆,但群发实在没有意义,你是不是想来一个既个性而又群发呢? 譬如 ...
- 第1章、从零开始学Android
引子 滚滚长江东逝水 浪花淘尽英雄 是非成败转头空 青山依旧在 几度夕阳红 白发渔樵江渚上 惯看秋月春风 一壶浊酒喜相逢 古今多少事 都付笑谈中 --------------------------- ...
- 第15章、布局Layouts之TableLayout表格布局(从零开始学Android)
TableLayout表格布局 TableLayout是指将子元素的位置分配到行或列中.Android的一个TableLayout有许多TableRow组成,每一个TableRow都会定义一个Row. ...
- android 发送彩信监听,第74章、再识Intent-调用发送彩信程序(从零开始学Android)...
一.设计界面 1.布局文件 打开res/layout/activity_main.xml文件. 输入以下代码: xmlns:android="http://schemas.android.c ...
最新文章
- Elasticsearch之数据建模
- python:字典,元组
- 提高办公效率的个Excel技巧,告别苦加班!
- DataX在有赞大数据平台的实践
- QML 性能优化建议(一)
- boost::random模块生成随机 8 个字符密码相关的测试程序
- 极光尔沃切片软件_极光尔沃3D打印机走进肥东中小学校
- python数据挖掘 百度云,常用数据挖掘算法总结及Python实现高清完整版PDF_python数据挖掘,python数据分析常用算法...
- Java实现Spark-Redis,Spark 之 Redis on spark java.io.NotSerializableException
- Quagga:开源的基于Zebra实现了RIP, OSPF, BGP的动态路由软件
- extjs 关于dom操作的几个库
- 我的SQL相关TIPS
- 2018,扬帆起航!
- OPA2134UA IC AUDIO 2 CIRCUIT 8SOIC
- vscode web版,走到哪用到哪
- 四天搞懂生成对抗网络(一)——通俗理解经典GAN
- git报错error: index uses extension, fatal: index file corrupt
- Oracle数据库:约束条件:主键约束、唯一约束、检查约束、非空约束、外键约束、默认值填写
- python 脚本梦幻西游_GitHub - U200915104/mhxy_fz: 一个基于计算机视觉开发的梦幻西游辅助脚本...
- 度小满金融面试java_记度小满金融面试过程