android notification的使用方法,详解Android中Notification的使用方法
在消息通知的时候,我们经常用到两个控件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的使用方法相关推荐
- mysql_slow_详解MySQL中SlowLog的配置方法(图文)
mysql 日志系统上线有段时间了,前端在慢慢切站点过来写入,未雨绸缪 diy了套 mysql 监控工具. 分为 slave status ,sync,objec infot,userprivile ...
- android 数据文件存储,实例详解Android文件存储数据方式
总体的来讲,数据存储方式有三种:一个是文件,一个是数据库,另一个则是网络.下面通过本文给大家介绍android文件存储数据方式. 1.文件存储数据使用了java中的io操作来进行文件的保存和读取,只不 ...
- android事件处理主要方法,详解Android的两种事件处理机制
UI编程通常都会伴随事件处理,Android也不例外,它提供了两种方式的事件处理:基于回调的事件处理和基于监听器的事件处理. 对于基于监听器的事件处理而言,主要就是为Android界面组件绑定特定的事 ...
- Android 视频图片 轮播,详解android 视频图片混合轮播实现
循环添加视频view 图片view for (int i = 0 ;i if (beansarraylist.get(i).gettype()==1){ videoplayer = new nice ...
- Android Log和Slog类详解--Android 12
Log类的路径在/frameworks/base/core/java/android/util/Log.java Slog类的路径在/frameworks/base/core/java/android ...
- 详解Java中的Object.getClass()方法
详解Object.getClass()方法,这个方法的返回值是Class类型,Class c = obj.getClass(); 通过对象c,我们可以获取该对象的所有成员方法,每个成员方法都是一个Me ...
- php后端switch,详解PHP中php switch的方法实例_后端开发
php+javascript实现用户注册模块(附源码)_后端开发 在任何一个网站内都需要注册功能,本文讲述了利用html . javascript . ajax . php和MySQL实现简单的注册功 ...
- 一文详解科研中的Paper阅读方法!!!
关注上方"深度学习技术前沿",选择"星标公众号", 资源干货,第一时间送达! 前言 论文阅读一直是科研过程中至关重要的一环,如何收集论文,快速选取和课题匹配的论 ...
- java中的invoke方法_详解Java中Method的Invoke方法
在写代码的时候,发现从父类class通过getDeclaredMethod获取的Method可以调用子类的对象,而子类改写了这个方法,从子类class通过getDeclaredMethod也能获取到M ...
最新文章
- 办公室自动化系统_信息化管理建设 公司办公室用自动盖章机贵吗?
- 不是“老赖”是“真还”!罗永浩 6 亿债务还了 4 亿
- 使用vim寄存器(reg)功能(vim 复制、剪切、粘贴功能简介)
- cv2.dnn.readNetFromDarknet()在python3上遇到的问题
- linux纯内核直接用吗,Linux:为啥内核有的变量没有初始化就敢直接使用?
- 7 款 Python 开源框架的优劣总结
- nvsip能用别的软件吗_为什么很多企业转向了 Golang? Java, Python, C#没落了吗?
- vue中$nextTick()作用
- Linux shell 脚本实例
- python超时处理_Python如何实现让一个函数超时退出?
- javascript 权威指南一
- c语言生成exe文件的作用,c语言怎么生成exe文件
- IntelliJ IDEA 2019 通用 急活码
- Creator星球教程文章分类导航
- 【装机知识】机箱知识整理
- 告诉你WHT中文站是什么?
- 微信小程序影视评论交流平台系统毕业设计毕设(2)小程序功能
- 主动推迟面试时间是面试的大忌
- 发挥GPU强大动力的CG语言
- buck电路尖峰电压分析_一种buck电路及其MOS管的电压尖峰吸收电路制造技术
热门文章
- 前端开发:模块化----高效重构
- 二元函数对xy同时求导_复变函数学习笔记(5)
- html添加好友界面,一分钟学会20个页面设计方法之钱包、添加好友关注
- 高效学习--BOST学习技巧组合
- Eclipse常用插件在线安装和离线安装方式
- 李虎头php,李二丫头说金鱼:说一说虎头和红头的特征
- html闰年计算方法,闰年计算的两种方法
- 怎么将计算机连接到网络,Win7中怎么找到网络连接 如何将win7电脑改造成无线路由器...
- CodeForces 997C Sky Full of Stars
- worksheet怎么读_慢读RAZ分级阅读 宝藏资源worksheet