在android中有时会在主界面上收到某些应用的推送,有的可以包含图片,声音或者震动效果,当点击这些提示时,有时还可以进入到发送提示的的应用。

这些提示的推送就是通知,当然通知早根本上也是你一种服务。

首先想要使用通知就必须使用到Notification.Builder 和NotificationManager这两个类

使用Notification.Builder来取得Notification对象,使用NotificationManager来取得操作通知的对象

当然,我们也可以使用RemoteViews来获得自定义View来创建自定义的通知

接下来就让我们一起用例子来学习通知的使用吧

主界面xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:paddingBottom="@dimen/activity_vertical_margin"android:paddingLeft="@dimen/activity_horizontal_margin"android:paddingRight="@dimen/activity_horizontal_margin"android:paddingTop="@dimen/activity_vertical_margin"tools:context=".MainActivity" ><Buttonandroid:id="@+id/button1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignParentTop="true"android:layout_centerHorizontal="true"android:layout_marginTop="15dp"android:text="原始通知" /><Buttonandroid:id="@+id/button2"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignRight="@+id/button1"android:layout_below="@+id/button1"android:layout_marginTop="53dp"android:text="自定通知" /></RelativeLayout>

通知界面

<?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/textView1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text=" 主界面哦"android:textAppearance="?android:attr/textAppearanceLarge" /></LinearLayout>

自定义通知界面

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent" ><ImageViewandroid:id="@+id/imageView1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignParentLeft="true"android:layout_alignParentTop="true"android:src="@drawable/b12" /><TextViewandroid:id="@+id/textView1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignParentTop="true"android:layout_toRightOf="@+id/imageView1"android:text="大学橙色预警"android:textAppearance="?android:attr/textAppearanceMedium" /><TextViewandroid:id="@+id/textView2"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_below="@+id/textView1"android:layout_toRightOf="@+id/imageView1"android:text="部分地区降雨达到500ml" /></RelativeLayout>

主文件

package com.example.notification1;import android.app.Activity;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.RemoteViews;public class MainActivity extends Activity {private Button button1, button2;private Notification.Builder builder;private NotificationManager manager;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);button1 = (Button) this.findViewById(R.id.button1);button2 = (Button) this.findViewById(R.id.button2);builder = new Notification.Builder(this);// 创建一个通知设置manager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);button1.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubPendingIntent pendingIntent = PendingIntent.getActivity(MainActivity.this, 0, new Intent(MainActivity.this,Main.class), 0);// 获得pendingIntent意图builder.setContentIntent(pendingIntent);builder.setSmallIcon(R.drawable.b12);builder.setTicker("您有新通知");builder.setContentTitle("降雨橙色预警");builder.setContentText("下午5时降雨将会达到500ml,请市民注意防范");builder.setContentInfo("暴雨,大风");builder.setSubText("本月底7次大雨");builder.setDefaults(Notification.DEFAULT_SOUND);// 设置默认提示生啊long[] vibrate = { 100l, 1000l, 100l, 1000l, 10l, 1000l };// 设置震动的频率builder.setVibrate(vibrate);// 设置自定义震动Notification notification = builder.build();manager.notify(1000, notification);// 开启通知}});
//自定义通知button2.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubRemoteViews contentRemoteViews = new RemoteViews(getPackageName(), R.layout.custom);// 获取自定义的layoutIntent intent = new Intent(MainActivity.this, Main.class);PendingIntent conPendingIntent = PendingIntent.getActivity(MainActivity.this, 0, intent, 0);builder.setContent(contentRemoteViews);builder.setContentIntent(conPendingIntent);Notification notification = builder.build();manager.notify(1001, notification);}});}}

通知界面JAVA文件

package com.example.notification1;import android.app.Activity;
import android.os.Bundle;public class Main extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);super.setContentView(R.layout.main);
}
}

点击通知

点击自定义通知

通过本节的学习,希望读者能够掌握原始通知的使用和自定义通知的配置和使用。

下节预报:BroadCast广播

从零开始学androidNotification通知.四十四.相关推荐

  1. 从零开始学USB(二十四、USB接口HID类设备(六)_物理描述符)

    物理描述符也称作实体描述符.被用来描述设备的行为特性. 物理描述符是一种数据结构,它提供有关激活控件或控件的人体特定部分的信息. 例如,物理描述符可能指示右手拇指用于激活按钮5.应用程序可以使用此信息 ...

  2. 从零开始学ios开发(十四):Navigation Controllers and Table Views(上)

    这一篇我们将学习一个新的控件Navigation Controller,很多时候Navigation Controller是和Table View紧密结合在一起的,因此在学习Navigation Co ...

  3. 从零开始学USB(二十四、最简单的USB驱动开始)

    18年底,花了2个月啃学习USB2.0协议.现在终于开始要派上用场了,开始和代码打交道了. 当然,现在只是从简单的开始usb设备驱动开始,后面再慢慢的分析usb总线,usb的hub之类. 先给出代码, ...

  4. 【高德地图API】从零开始学高德JS API(四)搜索服务——POI搜索|自动完成|输入提示|行政区域|交叉路口|自有数据检索

    原文地址为: [高德地图API]从零开始学高德JS API(四)搜索服务--POI搜索|自动完成|输入提示|行政区域|交叉路口|自有数据检索 摘要:地图服务,大家能想到哪些?POI搜素,输入提示,地址 ...

  5. 【Visual C++】游戏开发笔记四十四 浅墨DirectX教程十二 网格模型和X文件使用面面观

    本系列文章由zhmxy555(毛星云)编写,转载请注明出处. 文章链接: http://blog.csdn.net/zhmxy555/article/details/8586540 作者:毛星云(浅墨 ...

  6. [系统安全] 四十四.APT系列(9)Metasploit技术之基础用法万字详解及防御机理

    您可能之前看到过我写的类似文章,为什么还要重复撰写呢?只是想更好地帮助初学者了解病毒逆向分析和系统安全,更加成体系且不破坏之前的系列.因此,我重新开设了这个专栏,准备系统整理和深入学习系统安全.逆向分 ...

  7. 1977-2021 高考四十四年,哪一张照片是属于你的记忆(珍贵!)

    1977-2019 四十四年高考 一个国家命运的拐点 千百万个人生的转折 1977 四十四年     四十四图 1977年12月10日的高考, 是中国历史上唯一的一次冬季高考. 这一天,570多万从农 ...

  8. 如何选择适合你的兴趣爱好(四十四),武当

    围城网的摇摇今天给大家带来了"如何选择适合你的兴趣爱好"系列专辑的第四十四讲--武当.武当功夫由张三丰祖师始创,集百家之长,融道家养身为一体,以阐功夫真理,扬长道教文化为宗旨.武当 ...

  9. 【Visual C++】游戏开发笔记四十四 浅墨DirectX教程十二 网格模型和X文件使用面面观...

    本系列文章由zhmxy555(毛星云)编写,转载请注明出处. 文章链接:http://blog.csdn.net/zhmxy555/article/details/8586540 作者:毛星云(浅墨) ...

  10. Python编程基础:第四十四节 方法重写Method Overriding

    第四十四节 方法重写Method Overriding 前言 实践 前言 我们前面说了,子类继承于父类,可以调用父类的所有属性和方法.那么如果我们想在继承的过程中重新书写父类的某些方法,此时就用到了方 ...

最新文章

  1. Mysql的“Table ‘mysql.servers‘ doesn‘t exist”的解决方法
  2. 关于js中的时间处理
  3. 【两数之和】算法优化笔记
  4. 跟新centos的yum源
  5. 【人工智能】命题逻辑测验题题解
  6. JEEWX 使用ngrok将本地Web服务映射到外网
  7. JS 设计模式 一(接口)
  8. 【图像处理】ISP 图像传感器camera原理
  9. burp基本的用法总结
  10. 第10章 分离并纠正物理层和数据链路层故障
  11. 记录一个项目测试过程最佳实践及改进建议
  12. (转)关于最近疯狂流行的文件夹变成exe文件的病毒查杀办法
  13. android日记功能的实现6,我的android studio学习日记
  14. 软件测试中学生选课用例表,软件测试选课系统测试用例(新).xls
  15. 北美常见水果与蔬菜的中英文对照
  16. glassfish linux,使用glassfish在linux上的部署网站
  17. 京东评论爬虫(详解)
  18. 泰戈尔《飞鸟集》节选
  19. 在支付宝中开通信用卡快捷支付
  20. 升华网第三次培训心得

热门文章

  1. python判断字符串包含中文_查询字符串中是否包含中文字符(Python实现)
  2. easyui 合并单元格
  3. 下docfetcher先下Java,docfetcher怎么用-docfetcher的使用教程 - 河东软件园
  4. iOS 加载本地Gif图片
  5. 概率论简明教程_Chapter-02_最大似然估计
  6. 【SVM预测】基于蝙蝠算法改进SVM实现数据分类
  7. 用java实现mysql数据可视化_java可视化界面操作数据库编程.doc
  8. 华为手机安装软件出现签名不一致
  9. 培养逻辑思维的app_数学逻辑思维app哪个好
  10. Delphi--“Range check error“ 错误解决方案之一