当用户有没有接到的电话的时候,Android顶部状态栏里就会出现一个小图标。提示用户有没有处理的快讯,当拖动状态栏时,可以查看这些快讯。Android给我们提供了NotificationManager来管理这个状态栏。可以很轻松的完成。

很基础的东西,直接看注释就可以了,随手粘贴。

看下效果图:

  

 package com.example.notificationdemo;

 import android.app.Activity;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast; public class MainActivity extends Activity implements OnClickListener { private Button send;
private Button cancel; private int flag=888;// 用来标志当前是哪个Notification
private NotificationManager mNotificationManager; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
initListener();
// 取得通知系统服务
mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
} private void initListener() {
this.send.setOnClickListener(this);
this.cancel.setOnClickListener(this);
} private void initView() {
this.send = (Button) findViewById(R.id.send);
this.cancel = (Button) findViewById(R.id.cancel);
} @Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.send:
// 发送通知
sendNotification();
break;
case R.id.cancel:
// 取消通知
mNotificationManager.cancel(flag);
break;
}
} private void sendNotification() { // 构建通知显示类
Notification.Builder builder = new Notification.Builder(this);
// 设置通知样式内容
builder.setSmallIcon(R.drawable.ic_launcher);// 设置顶部通知栏小图标
builder.setContentTitle("我是通知标题栏");// 设置具体标题
builder.setContentText("我是通知具体内容");// 设置具体内容
builder.setWhen(System.currentTimeMillis());// 设置时间
// 设置提示灯,震动,声音(可以一起设置DEFAULT_ALL,需要对应权限)
builder.setDefaults(Notification.DEFAULT_LIGHTS);
builder.setDefaults(Notification.DEFAULT_SOUND);
builder.setDefaults(Notification.DEFAULT_VIBRATE); Intent intent = new Intent(this, MainActivity.class);
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent, 0); // 设置点击跳转Intent
builder.setContentIntent(pendingIntent); // 设置通知
Notification notification;
if (android.os.Build.VERSION.SDK_INT >= 16) {
notification = builder.build();// 系统4.1以上
Toast.makeText(this, "当前系统版本4.1以上", Toast.LENGTH_LONG).show();
} else {
notification = builder.getNotification();// 系统4.1以下
Toast.makeText(this, "当前系统版本4.1以下", Toast.LENGTH_LONG).show();
} // 发送通知
mNotificationManager.notify(flag, notification);
} }

安卓开发笔记——Notification通知栏的更多相关文章

  1. 安卓开发笔记——深入Activity

    在上一篇文章<安卓开发笔记——重识Activity >中,我们了解了Activity生命周期的执行顺序和一些基本的数据保存操作,但如果只知道这些是对于我们的开发需求来说是远远不够的,今天我 ...

  2. 安卓开发笔记——自定义广告轮播Banner(实现无限循环)

    关于广告轮播,大家肯定不会陌生,它在现手机市场各大APP出现的频率极高,它的优点在于"不占屏",可以仅用小小的固定空位来展示几个甚至几十个广告条,而且动态效果很好,具有很好的用户& ...

  3. 安卓开发笔记——丰富多彩的TextView

    随手笔记,记录一些东西~ 记得之前写过一篇文章<安卓开发笔记——个性化TextView(新浪微博)>:http://www.cnblogs.com/lichenwei/p/4411607. ...

  4. 安卓开发笔记——关于开源项目SlidingMenu的使用介绍(仿QQ5.0侧滑菜单)

    记得去年年末的时候写过这个侧滑效果,当时是利用自定义HorizontalScrollView来实现的,效果如下: 有兴趣的朋友可以看看这篇文件<安卓开发笔记——自定义HorizontalScro ...

  5. 安卓开发笔记——打造万能适配器(Adapter)

    为什么要打造万能适配器? 在安卓开发中,用到ListView和GridView的地方实在是太多了,系统默认给我们提供的适配器(ArrayAdapter,SimpleAdapter)经常不能满足我们的需 ...

  6. 安卓开发笔记——关于Handler的一些总结(上)

    接上篇文章<安卓开发笔记——关于AsyncTask的使用>,今天来讲下在安卓开发里"重中之重"的另一个异步操作类Handler. 今天打算先讲下关于Handler的一些 ...

  7. 安卓开发笔记——Fragment+ViewPager组件(高仿微信界面)

    什么是ViewPager? 关于ViewPager的介绍和使用,在之前我写过一篇相关的文章<安卓开发复习笔记——ViewPager组件(仿微信引导界面)>,不清楚的朋友可以看看,这里就不再 ...

  8. 安卓开发笔记——Fragment+FragmentTabHost组件(实现新浪微博底部菜单)

    记得之前写过2篇关于底部菜单的实现,由于使用的是过时的TabHost类,虽然一样可以实现我们想要的效果,但作为学习,还是需要来了解下这个新引入类FragmentTabHost 之前2篇文章的链接: 安 ...

  9. 安卓开发笔记——TabHost组件(二)(实现底部菜单导航)

    上面文章<安卓开发复习笔记——TabHost组件(一)(实现底部菜单导航)>中提到了利用自定义View(ImageView+TextView)来设置一个底部菜单的样式 这边再补充一种更为灵 ...

随机推荐

  1. [POI2010]GRA-The Minima Game

    OJ题号:洛谷3507 思路: 如果选了$k_i$,那么你的对手就可以选上所有$\geq{k_i}$的数.那么他其中获得的分数也一定$\geq{k_i}$. 如果你选了$k_i$以及所有$\geq{k ...

  2. 一些公司的面试题目 U3D

    #include <iostream> using namespace std; int main() { int N; while (cin>>N&&N> ...

  3. 【3dsmax2016】安装图文教程、破解注册以及切换语言方法

    第一步:安装3dsmax2014 64位中文版 第二步:解压3dsmax2014 64位中文版安装包 第三步:选择安装产品 第四步:接受相关协议 第五步:产品序列号和密钥 第六步:产品子组件选择 第七 ...

  4. dos2unix详解

    Linux命令之dos2unix - 将DOS格式文本文件转换成UNIX格式 dos2unix安装 首先说明dos2unix是将dos文本转换为unix文本,不是将gbk转换为utf8,跟文本的编码格 ...

  5. Django缓存1

    1. 开发调试 # 此为开始调试用,实际内部不做任何操作 # 配置: CACHES = { 'default': { 'BACKEND': 'django.core.cache.backends.du ...

  6. Activex控件的IObjectSafety接口问题

    我的05年做流氓插件的时候,就注意到了这个问题,只要注册表加入 类似的就可以  HKEY_CLASSES_ROOT\Component    Categories\{7DD95801-9882-11C ...

  7. delphi中接口的委托和聚合

    Delphi的TRegistry注册表类 方法详解 Delphi的接口编程入门 delphi中接口的委托和聚合 2009-09-27 10:44:44|  分类: 默认分类 |  标签: |举报 |字 ...

  8. 更优雅地关闭资源 - try-with-resource及其异常抑制

    原文:https://www.cnblogs.com/itZhy/p/7636615.html 一.背景 我们知道,在Java编程过程中,如果打开了外部资源(文件.数据库连接.网络连接等),我们必须在 ...

  9. asp.net 用JWT来实现token以此取代Session

    先说一下为什么要写这一篇博客吧,其实个人有关asp.net 会话管理的了解也就一般,这里写出来主要是请大家帮我分析分析这个思路是否正确.我以前有些有关Session的也整理如下: 你的项目真的需要Se ...

  10. python 获取前一天或前N天的日期

    简单实现 import datetime # 获取前1天或N天的日期,beforeOfDay=1:前1天:beforeOfDay=N:前N天 def getdate(self,beforeOfDay) ...