Android--通知之Notification详解

Android 之 Notification (状态栏通知)详解 本节带来的是Android中用于在状态栏显示通知信息的控件:Notification,相信大部分 学Android都对他都很熟悉,而网上很多关于Notification的使用教程都是基于2.x的,而 现在普遍的Android设备基本都在4.x以上,甚至是5.0以上的都有;.setSound(Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.biaobiao)) //设置自定义的提示音。//取消Notification。 阅读详情

Notification是一种具有全局效果的通知,程序一般通过NotificationManager服务来发送Notification。在本篇博客中,将介绍Notification的常规使用,以及自定义方式的使用,对于每种不同的方式,都提供示例展示效果。

 

Notification

  Notification,俗称通知,是一种具有全局效果的通知,它展示在屏幕的顶端,首先会表现为一个图标的形式,当用户向下滑动的时候,展示出通知具体的内容。

  因为Android的快速发展,而Android的版本也快速的升级导致了一些兼容性的问题。对于Notification而言,Android3.0是一个分水岭,在其之前构建Notification推荐使用NotificationCompate.Builder,它位于android.support.v4.app.NotificationCompat.Builder,是一个Android向下版本的兼容包,而在Android3.0之后,一般推荐使用Notification.Builder构建。本博客主要介绍的是Android4.x的开发,所以在这里使用Notification.Builder进行讲解演示。

  通知一般通过NotificationManager服务发送一个Notification对象来完成通知,NotificationManager是一个重要的系统级服务,该对象位于应用程序的框架层中,应用程序可以通过它向系统发送全局的通知。使用通知的时候,需要创建一个Notification对象用来承载通知的内容,但是一般不会直接通过Notification的构造方法来得到对象,而是使用它的内部类Notification.Builder来实例化一个Builder对象,并设置通知的各项属性,最后通过Notification.Builder.build()方法得到一个Notification对象,当获得这个Notification对象之后,就可以使用NotificationManager.notify()方法发送通知。

  NotificationManager类是一个通知管理器类,这个对象是由系统维护的服务,是以单例模式的方式获得,所以一般并不直接实例化这个对象。在Activity中,可以使用Activity.getSystemService(String)方法获取NotificationManager对象,Activity.getSystemService(String)方法可以通过Android系统级服务的句柄,返回对应的对象。在这里需要返回NotificationManager,所以直接传递Context.NOTIFICATION_SERVICE即可。

  虽然通知中提供了各种属性的设置,但是一个通知对象,有几个属性是必须要设置的,其他的属性均是可选的,必须设置的属性如下:

  • 小图标,使用setSamllIcon()方法设置。
  • 标题,使用setContentTitle()方法设置。
  • 文本内容,使用setContentText()方法设置。 

  

更新与移除通知

  在使用NotificationManager.notify()发送通知的时候,需要传递一个标识符,用于唯一标识这个通知。对于有些场景,并不是无限的添加新的通知,有时候需要更新原有通知的信息,这个时候可以重写构建Notification,而使用与之前通知相同标识符来发送通知,这个时候旧的通知就被被新的通知所取代,起到更新通知的效果。

  对于一个通知,当展示在状态栏之后,但是使用过后,如何取消呢?Android为我们提供两种方式移除通知,一种是Notification自己维护,使用setAutoCancel()方法设置是否维护,传递一个boolean类型的数据。另外一种方式使用NotificationManager通知管理器对象来维护,它通过notify()发送通知的时候,指定的通知标识Id来操作通知,可以使用cancel(int)来移除一个指定的通知,也可以使用cancelAll()移除所有的通知。

  使用NotificationManager移除指定通知示例:

1         NotificationManager mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
2         mNotificationManager.cancel(0);

 

 PendingIntent

  对于一个通知而言,它显示的消息是有限的,一般仅用于提示一些概要信息。但是一般简短的消息,并不能表达需要告诉用户的全部内容,所以需要绑定一个意图,当用户点击通知的时候,调用一个意图展示出一个Activity用来显示详细的内容。而Notification中,并不使用常规的Intent去传递一个意图,而是使用PendingIntent。

  先来说说Intent和PendingIntent的区别,PendingIntent可以看做是对Intent的包装,通过名称可以看出PendingIntent用于处理即将发生的意图,而Intent用来用来处理马上发生的意图。而对于通知来说,它是一系统级的全局通知,并不确定这个意图被执行的时间。当在应用外部执行PendingIntent时,因为它保存了触发应用的Context,使得外部应用可以如在当前应用中一样,执行PendingIntent里的Intent,就算执行的时候响应通知的应用已经被销毁了,也可以通过存在PendingIntent里的Context照常执行它,并且还可以处理Intent说带来的额外信息。

  PendingIntent提供了多个静态的getXxx()方法,用于获得适用于不同场景的PendingIntent对象。一般需要传递的几个参数都很常规,只介绍一个flag参数,用于标识PendingIntent的构造选择:

  • FLAG_CANCEL_CURRENT:如果构建的PendingIntent已经存在,则取消前一个,重新构建一个。
  • FLAG_NO_CREATE:如果前一个PendingIntent已经不存在了,将不再构建它。
  • FLAG_ONE_SHOT:表明这里构建的PendingIntent只能使用一次。
  • FLAG_UPDATE_CURRENT:如果构建的PendingIntent已经存在,则替换它,常用。

 

Notification视觉风格

  Notification有两种视觉风格,一种是标准视图(Normal view)、一种是大视图(Big view)。标准视图在Android中各版本是通用的,但是对于大视图而言,仅支持Android4.1+的版本。

  从官方文档了解到,一个标准视图显示的大小要保持在64dp高,宽度为屏幕标准。标准视图的通知主体内容有一下几个:

  1. 通知标题。
  2. 大图标。
  3. 通知内容。
  4. 通知消息。
  5. 小图标。
  6. 通知的时间,一般为系统时间,也可以使用setWhen()设置。

  下面通过一个示例,模仿上面效果的通知。

复制代码
 1 btnNotification.setOnClickListener(new View.OnClickListener() {
 2 
 3             @Override
 4             public void onClick(View v) {
 5                 Bitmap btm = BitmapFactory.decodeResource(getResources(),
 6                         R.drawable.msg);
 7                 NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(
 8                         MainActivity.this).setSmallIcon(R.drawable.msg)
 9                         .setContentTitle("5 new message")
10                         .setContentText("twain@android.com");
11                 mBuilder.setTicker("New message");//第一次提示消息的时候显示在通知栏上
12                 mBuilder.setNumber(12);
13                 mBuilder.setLargeIcon(btm);
14                 mBuilder.setAutoCancel(true);//自己维护通知的消失
15                 
16                 //构建一个Intent
17                 Intent resultIntent = new Intent(MainActivity.this,
18                         ResultActivity.class);
19                 //封装一个Intent
20                 PendingIntent resultPendingIntent = PendingIntent.getActivity(
21                         MainActivity.this, 0, resultIntent,
22                         PendingIntent.FLAG_UPDATE_CURRENT);
23                 // 设置通知主题的意图
24                 mBuilder.setContentIntent(resultPendingIntent);
25                 //获取通知管理器对象
26                 NotificationManager mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
27                 mNotificationManager.notify(0, mBuilder.build());
28             }
29         });
复制代码

  显示效果:

 

 

  而对于大视图(Big View)而言,它的细节区域只能显示256dp高度的内容,并且只对Android4.1+之后的设备才支持,它比标准视图不一样的地方,均需要使用setStyle()方法设定,它大致的效果如下:


  setStyle()传递一个NotificationCompat.Style对象,它是一个抽象类,Android为我们提供了三个实现类,用于显示不同的场景。分别是:

  • NotificationCompat.BigPictureStyle, 在细节部分显示一个256dp高度的位图。
  • NotificationCompat.BigTextStyle,在细节部分显示一个大的文本块。
  • NotificationCompat.InboxStyle,在细节部分显示一段行文本。

  如果仅仅显示一个图片,使用BigPictureStyle是最方便的;如果需要显示一个富文本信息,则可以使用BigTextStyle;如果仅仅用于显示一个文本的信息,那么使用InboxStyle即可。后面会以一个示例来展示InboxStyle的使用,模仿上面图片的显示。

   实现代码:

复制代码
 1         btnBigViewNotification.setOnClickListener(new View.OnClickListener() {
 2 
 3             @Override
 4             public void onClick(View v) {
 5 
 6                 Bitmap btm = BitmapFactory.decodeResource(getResources(),
 7                         R.drawable.msg);
 8                 Intent intent = new Intent(MainActivity.this,
 9                         ResultActivity.class);
10 
11                 PendingIntent pendingIntent = PendingIntent.getActivity(
12                         MainActivity.this, 0, intent,
13                         PendingIntent.FLAG_CANCEL_CURRENT);
14 
15                 Notification noti = new NotificationCompat.Builder(
16                         MainActivity.this)
17                         .setSmallIcon(R.drawable.msg)
18                         .setLargeIcon(btm)
19                         .setNumber(13)
20                         .setContentIntent(pendingIntent)
21                         .setStyle(
22                                 new NotificationCompat.InboxStyle()
23                                         .addLine(
24                                                 "M.Twain (Google+) Haiku is more than a cert...")
25                                         .addLine("M.Twain Reminder")
26                                         .addLine("M.Twain Lunch?")
27                                         .addLine("M.Twain Revised Specs")
28                                         .addLine("M.Twain ")
29                                         .addLine(
30                                                 "Google Play Celebrate 25 billion apps with Goo..")
31                                         .addLine(
32                                                 "Stack Exchange StackOverflow weekly Newsl...")
33                                         .setBigContentTitle("6 new message")
34                                         .setSummaryText("mtwain@android.com"))
35                         .build();
36 
37                 NotificationManager mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
38                 mNotificationManager.notify(0, noti);
39             }
40         });
复制代码

  展示效果:

 

进度条样式的通知

  对于一个标准通知,有时候显示的消息并不一定是静态的,还可以设定一个进度条用于显示事务完成的进度。

  Notification.Builder类中提供一个setProgress(int max,int progress,boolean indeterminate)方法用于设置进度条,max用于设定进度的最大数,progress用于设定当前的进度,indeterminate用于设定是否是一个确定进度的进度条。通过indeterminate的设置,可以实现两种不同样式的进度条,一种是有进度刻度的(true),一种是循环流动的(false)。下面分别用两个示例演示:

  有进度的进度条,实现代码: 

复制代码
 1         btnProgreNotification.setOnClickListener(new View.OnClickListener() {
 2             @Override
 3             public void onClick(View v) {
 4                 manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
 5                 builder = new NotificationCompat.Builder(MainActivity.this)
 6                         .setSmallIcon(R.drawable.ic_launcher)
 7                         .setContentTitle("Picture Download")
 8                         .setContentText("Download in progress");
 9                 builder.setAutoCancel(true);
10                 //通过一个子线程,动态增加进度条刻度
11                 new Thread(new Runnable() {
12                     @Override
13                     public void run() {
14                         int incr;
15                         for (incr = 0; incr <= 100; incr += 5) {
16                             builder.setProgress(100, incr, false);
17                             manager.notify(0, builder.build());
18                             try {
19                                 Thread.sleep(300);
20                             } catch (InterruptedException e) {
21                                 Log.i(TAG, "sleep failure");
22                             }
23                         }
24                         builder.setContentText("Download complete")
25                                 .setProgress(0, 0, false);
26                         manager.notify(0, builder.build());
27                     }
28                 }).start();
29             }
30         });
复制代码

  显示效果:

   对于循环流动的进度条,下面是实现代码:

复制代码
 1         btnProNotification.setOnClickListener(new View.OnClickListener() {
 2             @Override
 3             public void onClick(View v) {
 4                 manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
 5                 builder = new NotificationCompat.Builder(MainActivity.this)
 6                         .setSmallIcon(R.drawable.ic_launcher)
 7                         .setContentTitle("Picture Download")
 8                         .setContentText("Download in progress");
 9                 builder.setProgress(0, 0, true);//设置为true,表示流动
10                 manager.notify(0, builder.build());
11 
12                 //5秒之后还停止流动
13                 new Thread(new Runnable() {
14                     @Override
15                     public void run() {
16                         try {
17                             Thread.sleep(5000);
18                         } catch (InterruptedException e) {
19                             e.printStackTrace();
20                         }
21                         builder.setProgress(100, 100, false);//设置为true,表示刻度
22                         manager.notify(0, builder.build());
23                     }
24                 }).start();
25             }
26         });
复制代码

  效果展示:

 

自定义通知

  和Toast一样,通知也可以使用自定义的XML来自定义样式,但是对于通知而言,因为它的全局性,并不能简单的通过inflate膨胀出一个View,因为可能触发通知的时候,响应的App已经关闭,无法获取当指定的XML布局文件。所以需要使用单独的一个RemoteViews类来操作。

  RemoteViews,描述了一个视图层次的结构,可以显示在另一个进程。层次结构也是从布局文件中“膨胀”出一个视图,这个类,提供了一些基本的操作求改其膨胀的内容。

  RemoteViews提供了多个构造函数,一般使用RemoteViews(String packageName,int layoutId)。第一个参数为包的名称,第二个为layout资源的Id。当获取到RemoteViews对象之后,可以使用它的一系列setXxx()方法通过控件的Id设置控件的属性。最后使用NotificationCompat.Builder.setContent(RemoteViews)方法设置它到一个Notification中。

  下面通过一个示例展示它:

  自定义的布局XML代码:

复制代码
 1 <?xml version="1.0" encoding="utf-8"?>
 2 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
 3     android:layout_width="match_parent"
 4     android:layout_height="match_parent"
 5     android:padding="10dp" >
 6 
 7     <ImageView
 8         android:id="@+id/imageNo"
 9         android:layout_width="wrap_content"
10         android:layout_height="match_parent"
11         android:layout_alignParentLeft="true"
12         android:layout_marginRight="10dp" />
13 
14     <TextView
15         android:id="@+id/titleNo"
16         android:layout_width="wrap_content"
17         android:layout_height="wrap_content"
18         android:layout_toRightOf="@id/imageNo" />
19 
20     <TextView
21         android:id="@+id/textNo"
22         android:layout_width="wrap_content"
23         android:layout_height="wrap_content"
24         android:layout_below="@id/titleNo"
25         android:layout_toRightOf="@id/imageNo" />
26 
27 </RelativeLayout>
复制代码

  实现代码:

复制代码
 1         btnCustomNotification.setOnClickListener(new View.OnClickListener() {
 2             @Override
 3             public void onClick(View v) {
 4                 RemoteViews contentViews = new RemoteViews(getPackageName(),
 5                         R.layout.custom_notification);
 6                 //通过控件的Id设置属性
 7                 contentViews
 8                         .setImageViewResource(R.id.imageNo, R.drawable.btm1);
 9                 contentViews.setTextViewText(R.id.titleNo, "自定义通知标题");
10                 contentViews.setTextViewText(R.id.textNo, "自定义通知内容");
11 
12                 Intent intent = new Intent(MainActivity.this,
13                         ResultActivity.class);
14 
15                 PendingIntent pendingIntent = PendingIntent.getActivity(
16                         MainActivity.this, 0, intent,
17                         PendingIntent.FLAG_CANCEL_CURRENT);
18                 NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(
19                         MainActivity.this).setSmallIcon(R.drawable.ic_launcher)
20                         .setContentTitle("My notification")
21                         .setTicker("new message");
22                 mBuilder.setAutoCancel(true);
23 
24                 mBuilder.setContentIntent(pendingIntent);
25                 mBuilder.setContent(contentViews);
26                 mBuilder.setAutoCancel(true);
27                 NotificationManager mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
28                 mNotificationManager.notify(10, mBuilder.build());
29             }
30         });
复制代码

  效果展示:

 

设定提示响应

  对于有些通知,需要调用一些设备的资源,使用户能更快的发现有新通知,一般可设定的响应有:铃声、闪光灯、震动。对于这三个属性,NotificationCompat.Builder提供了三个方法设定:

  • setSound(Uri sound):设定一个铃声,用于在通知的时候响应。传递一个Uri的参数,格式为“file:///mnt/sdcard/Xxx.mp3”。
  • setLights(int argb, int onMs, int offMs):设定前置LED灯的闪烁速率,持续毫秒数,停顿毫秒数。
  • setVibrate(long[] pattern):设定震动的模式,以一个long数组保存毫秒级间隔的震动。

  大多数时候,我们并不需要设定一个特定的响应效果,只需要遵照用户设备上系统通知的效果即可,那么可以使用setDefaults(int)方法设定默认响应参数,在Notification中,对它的参数使用常量定义了,我们只需使用即可:

  • DEFAULT_ALL:铃声、闪光、震动均系统默认。
  • DEFAULT_SOUND:系统默认铃声。
  • DEFAULT_VIBRATE:系统默认震动。
  • DEFAULT_LIGHTS:系统默认闪光。

  而在Android中,如果需要访问硬件设备的话,是需要对其进行授权的,所以需要在清单文件AndroidManifest.xml中增加两个授权,分别授予访问振动器与闪光灯的权限:

1     <!-- 闪光灯权限 -->
2     <uses-permission android:name="android.permission.FLASHLIGHT"/>
3     <!-- 振动器权限 -->
4     <uses-permission android:name="android.permission.VIBRATE"/>

 

  因为只是一个属性的设定,并且大部分时候,使用系统设定即可,这里就不提供代码示例了。 

  源码下载

总结

  通知算是Android中比较常用的一个功能,可以保持自己App的长存,在用户没有进入App的时候,也提供了与用户交互的可能。



转自:http://www.cnblogs.com/plokmju/p/android_Notification.html

Android的通知(Notification)使用详解 这篇博客讲解一下在Android中使用Notification提示消息给用户,Notification是一种具有全局效果的通知,程序一般通过NotificationManager服务来发送Notification。在本篇博客中,将介绍Notification的常规使用,以及自定义方式的使用,对于每种不同的方式,都提供示例展示效果。 Notification   Notification 阅读详情

相关推荐

数据库迁移策略实战:MySQL到PostgreSQL

数据库迁移是一项复杂且细致的任务,需要充分的准备工作、合适的迁移策略和严格的验证与优化步骤。通过选择合适的迁移工具、进行手动迁移和应用程序适配、以及迁移后的验证与优化,可以确保数据迁移的成功和业务的连续性。希望本文的分享能够为大家在MySQL到PostgreSQL的数据库迁移实战中提供一些有用的参考和启示。

shejizuopin的博客 1732

Android--通知之Notification

前言   之前一篇博客讲了Android下使用Toast的方式提示消息。这篇博客讲解一下在Android中使用Notification提示消息给用户,Notification是一种具有全局效果的通知,程序一般通过NotificationManager服务来发送Notification。在本篇博客中,将介绍Notification的常规使用,以及自定义方式的使用,对于每种不同的方式,都提供示例展示...

weixin_33709219的博客 404

DOORS需求管理实战:从汽车设计案例看模块化需求拆分技巧

本文通过一个汽车设计实战案例,深入解析了如何利用DOORS进行模块化需求拆分与管理。从捕获原始用户需求到精炼为可追踪的系统需求,再到按子系统(如自动驾驶)进行模块化拆分,文章详细展示了构建需求骨架、建立可追溯性以及实施变更控制的完整流程,帮助团队在复杂系统工程中实现从混沌到秩序的高效协同。

ww90123的博客 244

Android-Notification 通知使用方法

Android 8.0以上通知用法及进阶,解决通知等级设为高了仍不显示消息横幅问题

qq_43691887的博客 1614

深入解析 ReDoc:从零构建高性能 API 文档的终极指南

ReDoc 是一个强大的开源工具,用于将 OpenAPI 规范转换为高质量、响应式的 API 文档。本文详细介绍了如何使用 ReDoc 构建和自定义 API 文档,包括如何编写支持 OpenAPI 的 API 注解、配置 HTML 页面以加载文档,以及如何利用 ReDoc 的高级功能进行定制。通过实例代码,您将学会如何灵活地展示 API 文档,提升用户体验。无论是初学者还是经验丰富的开发者,都能从本文中获得实用的技巧与方案,帮助快速搭建符合需求的 API 文档界面。

楠搏万的博客 4625

别再为10G UDP发愁了!手把手教你用Xilinx 10G/25G Ethernet Subsystem IP核搭建FPGA网络栈(附12套工程源码)

本文详细介绍了基于Xilinx UltraScale架构的FPGA网络栈开发,重点讲解了10G/25G Ethernet Subsystem IP核的应用实践。通过手把手教程和12套工程源码,帮助开发者解决10G UDP通信中的物理层接口、协议栈实现和系统集成等核心挑战,实现高性能FPGA网络栈搭建。

weixin_42522575的博客 364

安卓开发 通知栏Notification详解

安卓开发通知栏Notification的详细介绍和用法示例

wm 6938

YOLOv11改进 - 卷积Conv | GCNet之金箍棒块GCBlock : 重参数化捕获全局依赖 | CVPR 2025

文介绍了GCBlock在YOLOv11中的结合应用。GCBlock是GCNet的核心组件,能高效捕获特征图中的全局依赖关系,融合了非局部网络和挤压 - 激励网络的优势,降低计算成本并保障模型性能。其遵循“上下文建模 - 特征变换 - 特征融合”框架,通过全局平均池化、全连接层等操作生成注意力权重。我们将GCBlock集成进YOLOv11,替代原有的部分卷积模块,实现更高效的全局上下文建模。实验证明,YOLOv11-GCBlock在目标检测任务中表现出色,展现了GCBlock在深度学习中的广泛应用前景。

魔改工程师的博客 906

Android的notification通知

概括: Android使用notification实现消息提醒,提供通知栏和通知抽屉查看通知和通知详情,Android的notification机制应用非常广泛,是指在应用程序之外显示的消息,布局由系统模板决定,开发者只需要定义模板中各部分的内容,通知详情就会在点开后展开视图显示设置的内容。 目前大体分为状态栏图标通知、悬挂提醒式通知、锁屏通知及圆点通知,从Android8.0开始必须为所有通知分配一个或多个通道,否则通知将不会显示。Android8.0及以上通过通道的importance属性设置重要性

weixin_51872136的博客 3638

节省人力成本40%!仓储物流AI机器人调度系统实战案例(含路径规划算法与系统架构图)

首先,我们需要定义一个Node类self.x = x # 节点x坐标self.y = y # 节点y坐标self.g = g # 从起点到当前节点的实际成本(g值)self.h = h # 从当前节点到终点的启发式成本(h值)self.f = g + h # 总成本(f值)self.parent = None # 父节点(用于回溯路径)self.task_id = task_id # 任务IDself.priority = priority # 任务优先级(1=最高,5=最低)

小程序开发 949

【ArcGIS遇上Python】ArcGIS10.8 Python代码批量完美实现MODIS NDVI数据格式转换和投影变换

由于论文的需要,将MODIS NDVI数据进行投影变换和格式转换,具体操作可以参照:《ArcGIS10.8完美实现MODIS NDVI数据格式转换和投影变换》,但是该文章中的做法只能一次性实现一景影像的转换,没法批量,虽然ArcGIS中提供了Batch的方法但是需要挨个添加数据,确定输出路径等等,本文就实现以ArcGIS10.8 Python代码批量完美实现MODIS NDVI数据格式转换和投影变换。先来看投影后的效果: 在实现批量投影转换之前,需要两个投影文件:Sinusoidal.prj和MyAl

智慧空间实验室 3815

安卓中Notification通知的详解

这是关于androidNotification的详解,希望可以帮助到大家

知他人之所知,晓他人之不晓。 2216

UWB:FiRa Consortium UCI Generic Technical Specification v1.1.0(2)- 核心控制消息;会话管理;测距会话管理

测距是UWB最核心的应用。为了方便应用调用测距接口,FIRA统一了UCI命令格式,这样各个厂商可以互相兼容。

Ankie资深技术项目经理 1277

Android之Notification通知详解

Notification,俗称通知,是一种具有全局效果的通知,它展示在屏幕的顶端,首先会表现为一个图标的形式,当用户向下滑动的时候,展示出通知具体的内容。显示在手机状态栏的通知。Notification所代表的是一种具有全局效果的通知,程序一般通过NotificationManager服务来发送Notification。Android3.0增加了Notification.Builder类,该类可以轻松地创建Notification对象。

ljw的博客 1731

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

android notification的使用方法,Android中Notification通知用法详解

Notification的作用通知(Notification)是Android系统中比较有特色的一个功能。当某个应用程序希望向用户发出一些提示信息,而该应用程序又不在前台运行时,就可以用通知来实现用法首先我们需要一个NotificationManager来对通知进行管理,可以调用getSystemService()方法得到,方法接收一个字符串参数用于确定获取系统的哪个服务,这里我们传入NOTIFI...

weixin_34941214的博客 769

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

android 通知设置,Android开发之Notification通知用法详解

本文实例讲述了Android开发之Notification通知用法。分享给大家供大家参考,具体如下:根据activity的生命周期,在activity不显示时,会执行onStop函数(比如按下home键),所以你在onStop函数(按退出键除外)里面把notification放在通知栏里,再此显示时,把notification从通知栏里去掉。或者,只要程序在运行就一直显示通知栏图标。下面对Noti...

weixin_33254139的博客 950

android开发通知,Android开发之Notification通知用法详解

本文实例讲述了Android开发之Notification通知用法。分享给大家供大家参考,具体如下:根据activity的生命周期,在activity不显示时,会执行onStop函数(比如按下home键),所以你在onStop函数(按退出键除外)里面把notification放在通知栏里,再此显示时,把notification从通知栏里去掉。或者,只要程序在运行就一直显示通知栏图标。下面对Noti...

weixin_33042645的博客 1172

android Notification通知详解

Notification使用基本步骤 1、得到NotificationManager: String service = Context.NOTIFICATION_SERVICE; NotificationManager mNotificationManager =(NotificationManager)getSystemService(service) 2、实例化Notificatio

yinsujun11的专栏 691

Android Notification通知详解

Android Notification通知详解  Notification: (一)、简介:         显示在手机状态栏的通知。Notification所代表的是一种具有全局效果的通知,程序一般通过NotificationManager服务来发送Notification。         Android3.0增加了Notification.Builder类,该类可以轻松地创建N

q610098308的专栏 733

Android 通知 Notification 详解

在做一个IM项目,当收到消息监听时,需要后台服务发送一个通知,研究了一下Notification,总结如下: 如何创建并显示Notification 创建通知需要两个比较重要的类:NotificationManager和Notification NotificationManager :NotificationManager类是一个Android系统的服务类,它用来管理所有的通知 Notific...

weixin_44270896的博客 435

Android—Notification通知详解

Android Notification通知详解 根据activity的生命周期,在activity不显示时,会执行onStop函数(比如按下home键),所以你在onStop函数(按退出键除外)里面把notification放在通知栏里,再此显示时,把notification从通知栏里去掉。或者,只要程序在运行就一直显示通知栏图标。          下面对Noti

victorai60的专栏 426

java发送通知栏样式_Android 通知栏Notification详解

在android的应用层中,涉及到很多应用框架,例如:Service框架,Activity管理机制,Broadcast机制,对话框框架,标题栏框架,状态栏框架,通知机制,ActionBar框架等等。下面就来说说经常会使用到通知机制中的通知栏框架(Notificaiton),它适用于交互事件的通知。它是位于顶层可以展开的通知列表。它会时不时的提醒你什么软件该更新了,什么人发你微信消息了等。(网上看了...

weixin_42503881的博客 1102

Android中通知栏Notification详解以及自定义Notification

audioStreamType 当声音响起时,所用的音频流的类型  contentIntent 当通知条目被点击,就执行这个被设置的Intent.  contentView 当通知被显示在状态条上的时候,同时这个被设置的视图被显示.  defaults 指定哪个值要被设置成默认的.  deleteIntent 当用户点击"Clear All Notifications"按钮区删除所有的通知

daitu_liang的博客 1万+
上一篇: android Broadcast之静态与动态注册
下一篇: API Levels与Android os_version的对比
android_xiaozhou
博客等级 码龄14年 14粉丝 16原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值