在消息通知的时候,我们经常用到两个控件Notification和Toast。特别是重要的和需要长时间显示的信息,用Notification最合适不过了。他可以在顶部显示一个图标以标示有了新的通知,当我们拉下通知栏的时候,可以看到详细的通知内容。

最典型的应用就是未看短信和未接来电的显示,还有QQ微信,我们一看就知道有一个未接来电或者未看短信,收到QQ离线信息。同样,我们也可以自定义一个Notification来定义我们自己的程序想要传达的信息。

Notification我把他分为两种,一种是默认的显示方式,另一种是自定义的,今天为大家讲述默认的显示方式:

1、程序框架结构图如下

2、布局文件 main.xml 源码如下

android:orientation="vertical"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

>

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:gravity="center"

android:textColor="#EEE"

android:textStyle="bold"

android:textSize="25sp"

android:text="NotificationDemo实例" />

android:id="@+id/btnSend"

android:text="send notification"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_gravity="center"/>

3、MainActivity.java源码如下:

package com.andyidea.notification;

import android.app.Activity;

import android.content.Intent;

import android.os.Bundle;

import android.view.View;

import android.widget.Button;

public class MainActivity extends Activity {

private Button btnSend;

//定义BroadcastReceiver的action

private static final String NotificationDemo_Action = "com.andyidea.notification.NotificationDemo_Action";

/** Called when the activity is first created. */

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

btnSend = (Button)findViewById(R.id.btnSend);

btnSend.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

Intent intent = new Intent();

intent.setAction(NotificationDemo_Action);

sendBroadcast(intent);

}

});

}

}

4、布局文件 secondlayou.xml 源码如下:

xmlns:android="http://schemas.android.com/apk/res/android"

android:orientation="vertical"

android:layout_width="fill_parent"

android:layout_height="fill_parent">

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:gravity="center"

android:textColor="#EEE"

android:textStyle="bold"

android:textSize="25sp"

android:text="显示通知界面" />

android:id="@+id/btnCancel"

android:text="cancel notification"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_gravity="center" />

5、SecondActivity.java源码如下:

package com.andyidea.notification;

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;

public class SecondActivity extends Activity {

private Button btnCancel;

//声明Notification

private Notification notification;

//声明NotificationManager

private NotificationManager mNotification;

//标识Notification的ID

private static final int ID = 1;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.secondlayout);

btnCancel = (Button)findViewById(R.id.btnCancel);

//怎样获得NotificationManager的实例?

String service = NOTIFICATION_SERVICE;

mNotification = (NotificationManager)getSystemService(service);

//获得Notification的实例

notification = new Notification();

//设置该图标 会在状态栏显示

int icon = notification.icon = android.R.drawable.stat_sys_phone_call;

//设置提示信息

String tickerText = "Test Notification";

//设置显示时间

long when = System.currentTimeMillis();

notification.icon = icon;

notification.tickerText = tickerText;

notification.when = when;

Intent intent = new Intent(this, MainActivity.class);

PendingIntent pi = PendingIntent.getActivity(this, 0, intent, 0);

notification.setLatestEventInfo(this, "消息", "SMS Android", pi);

mNotification.notify(ID, notification);

btnCancel.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

mNotification.cancel(ID); //--->取消通知

}

});

}

}

6、NotificationReceiver.java源码如下:

package com.andyidea.notification;

import com.andyidea.notification.SecondActivity;

import android.content.BroadcastReceiver;

import android.content.Context;

import android.content.Intent;

public class NotificationReceiver extends BroadcastReceiver {

@Override

public void onReceive(Context context, Intent intent) {

//实例化Intent

Intent i = new Intent();

//在新任务中启动Activity

i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

//设置Intent启动的组件名称

i.setClass(context, SecondActivity.class);

//启动Activity,显示通知

context.startActivity(i);

}

}

7、程序运行效果如下:

以上就是针对Android中Notification使用方法进行的详细介绍,希望对大家的学习有所启发,帮助大家更好地学习Android软件编程。

android notification的使用方法,详解Android中Notification的使用方法相关推荐

  1. mysql_slow_详解MySQL中SlowLog的配置方法(图文)

    mysql 日志系统上线有段时间了,前端在慢慢切站点过来写入,未雨绸缪 diy了套 mysql 监控工具. 分为 slave  status ,sync,objec infot,userprivile ...

  2. android 数据文件存储,实例详解Android文件存储数据方式

    总体的来讲,数据存储方式有三种:一个是文件,一个是数据库,另一个则是网络.下面通过本文给大家介绍android文件存储数据方式. 1.文件存储数据使用了java中的io操作来进行文件的保存和读取,只不 ...

  3. android事件处理主要方法,详解Android的两种事件处理机制

    UI编程通常都会伴随事件处理,Android也不例外,它提供了两种方式的事件处理:基于回调的事件处理和基于监听器的事件处理. 对于基于监听器的事件处理而言,主要就是为Android界面组件绑定特定的事 ...

  4. Android 视频图片 轮播,详解android 视频图片混合轮播实现

    循环添加视频view  图片view for (int i = 0 ;i if (beansarraylist.get(i).gettype()==1){ videoplayer = new nice ...

  5. Android Log和Slog类详解--Android 12

    Log类的路径在/frameworks/base/core/java/android/util/Log.java Slog类的路径在/frameworks/base/core/java/android ...

  6. 详解Java中的Object.getClass()方法

    详解Object.getClass()方法,这个方法的返回值是Class类型,Class c = obj.getClass(); 通过对象c,我们可以获取该对象的所有成员方法,每个成员方法都是一个Me ...

  7. php后端switch,详解PHP中php switch的方法实例_后端开发

    php+javascript实现用户注册模块(附源码)_后端开发 在任何一个网站内都需要注册功能,本文讲述了利用html . javascript . ajax . php和MySQL实现简单的注册功 ...

  8. 一文详解科研中的Paper阅读方法!!!

    关注上方"深度学习技术前沿",选择"星标公众号", 资源干货,第一时间送达! 前言 论文阅读一直是科研过程中至关重要的一环,如何收集论文,快速选取和课题匹配的论 ...

  9. java中的invoke方法_详解Java中Method的Invoke方法

    在写代码的时候,发现从父类class通过getDeclaredMethod获取的Method可以调用子类的对象,而子类改写了这个方法,从子类class通过getDeclaredMethod也能获取到M ...

最新文章

  1. 办公室自动化系统_信息化管理建设 公司办公室用自动盖章机贵吗?
  2. 不是“老赖”是“真还”!罗永浩 6 亿债务还了 4 亿
  3. 使用vim寄存器(reg)功能(vim 复制、剪切、粘贴功能简介)
  4. cv2.dnn.readNetFromDarknet()在python3上遇到的问题
  5. linux纯内核直接用吗,Linux:为啥内核有的变量没有初始化就敢直接使用?
  6. 7 款 Python 开源框架的优劣总结
  7. nvsip能用别的软件吗_为什么很多企业转向了 Golang? Java, Python, C#没落了吗?
  8. vue中$nextTick()作用
  9. Linux shell 脚本实例
  10. python超时处理_Python如何实现让一个函数超时退出?
  11. javascript 权威指南一
  12. c语言生成exe文件的作用,c语言怎么生成exe文件
  13. IntelliJ IDEA 2019 通用 急活码
  14. Creator星球教程文章分类导航
  15. 【装机知识】机箱知识整理
  16. 告诉你WHT中文站是什么?
  17. 微信小程序影视评论交流平台系统毕业设计毕设(2)小程序功能
  18. 主动推迟面试时间是面试的大忌
  19. 发挥GPU强大动力的CG语言
  20. buck电路尖峰电压分析_一种buck电路及其MOS管的电压尖峰吸收电路制造技术

热门文章

  1. 前端开发:模块化----高效重构
  2. 二元函数对xy同时求导_复变函数学习笔记(5)
  3. html添加好友界面,一分钟学会20个页面设计方法之钱包、添加好友关注
  4. 高效学习--BOST学习技巧组合
  5. Eclipse常用插件在线安装和离线安装方式
  6. 李虎头php,李二丫头说金鱼:说一说虎头和红头的特征
  7. html闰年计算方法,闰年计算的两种方法
  8. 怎么将计算机连接到网络,Win7中怎么找到网络连接 如何将win7电脑改造成无线路由器...
  9. CodeForces 997C Sky Full of Stars
  10. worksheet怎么读_慢读RAZ分级阅读 宝藏资源worksheet