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

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

看下效果图:

  

  1. package com.example.notificationdemo;
  2.  
  3. import android.app.Activity;
  4. import android.app.Notification;
  5. import android.app.NotificationManager;
  6. import android.app.PendingIntent;
  7. import android.content.Context;
  8. import android.content.Intent;
  9. import android.os.Bundle;
  10. import android.view.View;
  11. import android.view.View.OnClickListener;
  12. import android.widget.Button;
  13. import android.widget.Toast;
  14.  
  15. public class MainActivity extends Activity implements OnClickListener {
  16.  
  17. private Button send;
  18. private Button cancel;
  19.  
  20. private int flag=888;// 用来标志当前是哪个Notification
  21. private NotificationManager mNotificationManager;
  22.  
  23. @Override
  24. protected void onCreate(Bundle savedInstanceState) {
  25. super.onCreate(savedInstanceState);
  26. setContentView(R.layout.activity_main);
  27. initView();
  28. initListener();
  29. // 取得通知系统服务
  30. mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
  31. }
  32.  
  33. private void initListener() {
  34. this.send.setOnClickListener(this);
  35. this.cancel.setOnClickListener(this);
  36. }
  37.  
  38. private void initView() {
  39. this.send = (Button) findViewById(R.id.send);
  40. this.cancel = (Button) findViewById(R.id.cancel);
  41. }
  42.  
  43. @Override
  44. public void onClick(View v) {
  45. switch (v.getId()) {
  46. case R.id.send:
  47. // 发送通知
  48. sendNotification();
  49. break;
  50. case R.id.cancel:
  51. // 取消通知
  52. mNotificationManager.cancel(flag);
  53. break;
  54. }
  55. }
  56.  
  57. private void sendNotification() {
  58.  
  59. // 构建通知显示类
  60. Notification.Builder builder = new Notification.Builder(this);
  61. // 设置通知样式内容
  62. builder.setSmallIcon(R.drawable.ic_launcher);// 设置顶部通知栏小图标
  63. builder.setContentTitle("我是通知标题栏");// 设置具体标题
  64. builder.setContentText("我是通知具体内容");// 设置具体内容
  65. builder.setWhen(System.currentTimeMillis());// 设置时间
  66. // 设置提示灯,震动,声音(可以一起设置DEFAULT_ALL,需要对应权限)
  67. builder.setDefaults(Notification.DEFAULT_LIGHTS);
  68. builder.setDefaults(Notification.DEFAULT_SOUND);
  69. builder.setDefaults(Notification.DEFAULT_VIBRATE);
  70.  
  71. Intent intent = new Intent(this, MainActivity.class);
  72. PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent, 0);
  73.  
  74. // 设置点击跳转Intent
  75. builder.setContentIntent(pendingIntent);
  76.  
  77. // 设置通知
  78. Notification notification;
  79. if (android.os.Build.VERSION.SDK_INT >= 16) {
  80. notification = builder.build();// 系统4.1以上
  81. Toast.makeText(this, "当前系统版本4.1以上", Toast.LENGTH_LONG).show();
  82. } else {
  83. notification = builder.getNotification();// 系统4.1以下
  84. Toast.makeText(this, "当前系统版本4.1以下", Toast.LENGTH_LONG).show();
  85. }
  86.  
  87. // 发送通知
  88. mNotificationManager.notify(flag, notification);
  89. }
  90.  
  91. }

安卓开发笔记——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. SpringMVC页面传值

    public ModelAndView query(){ ModelAndView modelAndView = new ModelAndView(); List list = new ArrayLi ...

  2. php中对Mysql数据库的访问操作

    一:  PHP-MySQL 是 PHP 操作 MySQL 资料库最原始的 Extension ,PHP-MySQLi 的 i 代表 Improvement ,提更了相对进阶的功能,就 Extensio ...

  3. C++学习笔记40:进程应用

    进程创建 system()函数:用于在程序中执行一条命令 如果shell不能运行,返回127,如果发生其他错误返回-1: 例子:int ret_val = system(“ls -l /”); for ...

  4. db2执行计划具体操作

    explain 1.如果第一次执行,请先(在dbinst用户下) connect to dbname,执行db2 -tvf $HOME/sqllib/misc/EXPLAIN.DDL建立执行计划表 2 ...

  5. strip_tags、htmlentities、htmlspecialchars的区别

    一.strip_tags() 函数剥去字符串中的 HTML.XML 以及 PHP 的标签. strip_tags(string,allow) 注释:可通过allow设置允许的标签.这些标签不会被删除. ...

  6. Android中Local Service最本质的作用是什么?

    把Service等同于thread或process是一个非常常见的误解.需要强调又强调的第一点是,Android的Service是一个Context,并不必然等于一个额外的thread.如果你有仔细看 ...

  7. Knockout.Js官网学习(加载或保存JSON数据)

    前言 Knockout可以实现很复杂的客户端交互,但是几乎所有的web应用程序都要和服务器端交换数据(至少为了本地存储需要序列化数据),交换数据最方便的就是使用JSON格式 – 大多数的Ajax应用程 ...

  8. Kubernetes中的亲和性与反亲和性

    通常情况下,Pod分配到哪些Node是不需要管理员操心的,这个过程会由scheduler自动实现.但有时,我们需要指定一些调度的限制,例如某些应用应该跑在具有SSD存储的节点上,有些应用应该跑在同一个 ...

  9. iOS: 数据持久化方案

    数据持久化方案(如果总结不到位,或者有误的地方,敬请斧正) 一.功能: 主要是将数据持久化到本地,减少对网络请求的次数,既节省了用户的流量,也增强了App的体验效果. 二.种类:  plist存储:使 ...

  10. iOS开发-命令模式

    命令模式算是设计模式中比较简单的,最常见的例子是工作任务安排下来进行编程,如果工作任务不需要完成,我们可以取消我们之前完成的代码,也可以理解为回滚撤销操作.这里面涉及到命令模式中的两个对象,一个是动作 ...