从零开始学androidNotification通知.四十四.
在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通知.四十四.相关推荐
- 从零开始学USB(二十四、USB接口HID类设备(六)_物理描述符)
物理描述符也称作实体描述符.被用来描述设备的行为特性. 物理描述符是一种数据结构,它提供有关激活控件或控件的人体特定部分的信息. 例如,物理描述符可能指示右手拇指用于激活按钮5.应用程序可以使用此信息 ...
- 从零开始学ios开发(十四):Navigation Controllers and Table Views(上)
这一篇我们将学习一个新的控件Navigation Controller,很多时候Navigation Controller是和Table View紧密结合在一起的,因此在学习Navigation Co ...
- 从零开始学USB(二十四、最简单的USB驱动开始)
18年底,花了2个月啃学习USB2.0协议.现在终于开始要派上用场了,开始和代码打交道了. 当然,现在只是从简单的开始usb设备驱动开始,后面再慢慢的分析usb总线,usb的hub之类. 先给出代码, ...
- 【高德地图API】从零开始学高德JS API(四)搜索服务——POI搜索|自动完成|输入提示|行政区域|交叉路口|自有数据检索
原文地址为: [高德地图API]从零开始学高德JS API(四)搜索服务--POI搜索|自动完成|输入提示|行政区域|交叉路口|自有数据检索 摘要:地图服务,大家能想到哪些?POI搜素,输入提示,地址 ...
- 【Visual C++】游戏开发笔记四十四 浅墨DirectX教程十二 网格模型和X文件使用面面观
本系列文章由zhmxy555(毛星云)编写,转载请注明出处. 文章链接: http://blog.csdn.net/zhmxy555/article/details/8586540 作者:毛星云(浅墨 ...
- [系统安全] 四十四.APT系列(9)Metasploit技术之基础用法万字详解及防御机理
您可能之前看到过我写的类似文章,为什么还要重复撰写呢?只是想更好地帮助初学者了解病毒逆向分析和系统安全,更加成体系且不破坏之前的系列.因此,我重新开设了这个专栏,准备系统整理和深入学习系统安全.逆向分 ...
- 1977-2021 高考四十四年,哪一张照片是属于你的记忆(珍贵!)
1977-2019 四十四年高考 一个国家命运的拐点 千百万个人生的转折 1977 四十四年 四十四图 1977年12月10日的高考, 是中国历史上唯一的一次冬季高考. 这一天,570多万从农 ...
- 如何选择适合你的兴趣爱好(四十四),武当
围城网的摇摇今天给大家带来了"如何选择适合你的兴趣爱好"系列专辑的第四十四讲--武当.武当功夫由张三丰祖师始创,集百家之长,融道家养身为一体,以阐功夫真理,扬长道教文化为宗旨.武当 ...
- 【Visual C++】游戏开发笔记四十四 浅墨DirectX教程十二 网格模型和X文件使用面面观...
本系列文章由zhmxy555(毛星云)编写,转载请注明出处. 文章链接:http://blog.csdn.net/zhmxy555/article/details/8586540 作者:毛星云(浅墨) ...
- Python编程基础:第四十四节 方法重写Method Overriding
第四十四节 方法重写Method Overriding 前言 实践 前言 我们前面说了,子类继承于父类,可以调用父类的所有属性和方法.那么如果我们想在继承的过程中重新书写父类的某些方法,此时就用到了方 ...
最新文章
- Mysql的“Table ‘mysql.servers‘ doesn‘t exist”的解决方法
- 关于js中的时间处理
- 【两数之和】算法优化笔记
- 跟新centos的yum源
- 【人工智能】命题逻辑测验题题解
- JEEWX 使用ngrok将本地Web服务映射到外网
- JS 设计模式 一(接口)
- 【图像处理】ISP 图像传感器camera原理
- burp基本的用法总结
- 第10章 分离并纠正物理层和数据链路层故障
- 记录一个项目测试过程最佳实践及改进建议
- (转)关于最近疯狂流行的文件夹变成exe文件的病毒查杀办法
- android日记功能的实现6,我的android studio学习日记
- 软件测试中学生选课用例表,软件测试选课系统测试用例(新).xls
- 北美常见水果与蔬菜的中英文对照
- glassfish linux,使用glassfish在linux上的部署网站
- 京东评论爬虫(详解)
- 泰戈尔《飞鸟集》节选
- 在支付宝中开通信用卡快捷支付
- 升华网第三次培训心得
热门文章
- python判断字符串包含中文_查询字符串中是否包含中文字符(Python实现)
- easyui 合并单元格
- 下docfetcher先下Java,docfetcher怎么用-docfetcher的使用教程 - 河东软件园
- iOS 加载本地Gif图片
- 概率论简明教程_Chapter-02_最大似然估计
- 【SVM预测】基于蝙蝠算法改进SVM实现数据分类
- 用java实现mysql数据可视化_java可视化界面操作数据库编程.doc
- 华为手机安装软件出现签名不一致
- 培养逻辑思维的app_数学逻辑思维app哪个好
- Delphi--“Range check error“ 错误解决方案之一