`
RandyWei
  • 浏览: 67056 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Android中的通知—Notification

 
阅读更多

Notification是Android中常用的一种通知方式,当有未读短信或者未接电话的时候,屏幕的状态栏就会有提示图标,这时可以下拉状态栏来读取通知。在使用微信的时候(微信在后台运行),如果有新消息时便会发出声音提示,状态栏也有相应的微信提示。

Android中Notification通知的实现步骤:

1.获取NotificationManager对象
NotificationManager的三个公共方法:
①cancel(int id) 取消以前显示的一个通知.假如是一个短暂的通知,试图将隐藏,假如是一个持久的通知,将从状态条中移走。
②cancelAll() 取消以前显示的所有通知。
③notify(int id,  Notification notification) 把通知持久的发送到状态条上。

2.初始化Notification对象
Notification的属性:
audioStreamType 当声音响起时,所用的音频流的类型 
contentIntent 当通知条目被点击,就执行这个被设置的Intent
contentView 当通知被显示在状态条上的时候,同时这个被设置的视图被显示
defaults 指定哪个值要被设置成默认的
deleteIntent 当用户点击"Clear All Notifications"按钮区删除所有的通知的时候,这个被设置的Intent被执行
icon 状态条所用的图片
iconLevel 假如状态条的图片有几个级别,就设置这里
ledARGB LED灯的颜色
ledOffMS LED关闭时的闪光时间(以毫秒计算) 
ledOnMS LED开始时的闪光时间(以毫秒计算) 
number 这个通知代表事件的号码 
sound 通知的声音
tickerText 通知被显示在状态条时,所显示的信息 
vibrate 振动模式
when 通知的时间戳

注:如果使Notification常驻在状态栏可以把Notification的flags属性设置为FLAG_ONGOING_EVENT

  1. n.flags = Notification.FLAG_ONGOING_EVENT  

3.设置通知的显示参数
使用PendingIntent来包装通知Intent,使用Notification的setLatestEventInfo来设置通知的标题、通知内容等信息。

4.发送通知
使用NotificationManager的notify(int id,  Notification notification)方法来发送通知。

下面代码演示下通知Notification的使用。完整代码下载:android_notification.rar

Notification实现的步骤:

  1. /** 
  2.  * MainActivity 
  3.  * @author zuolongsnail 
  4.  */  
  5. public class MainActivity extends Activity {  
  6.     private Button notifyBtn;  
  7.     private Button cancelBtn;  
  8.     private NotificationManager nm;  
  9.     private Notification n;  
  10.     // 通知的ID  
  11.     public static final int ID = 1;  
  12.     @Override  
  13.     public void onCreate(Bundle savedInstanceState) {  
  14.         super.onCreate(savedInstanceState);  
  15.         setContentView(R.layout.main);  
  16.         notifyBtn = (Button) findViewById(R.id.notify);  
  17.         cancelBtn = (Button) findViewById(R.id.cancel);  
  18.         notifyBtn.setOnClickListener(new MyOnClickListener());  
  19.         cancelBtn.setOnClickListener(new MyOnClickListener());  
  20.         // 1.获取NotificationManager对象  
  21.         nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);  
  22.         // 2.初始化Notification对象  
  23.         n = new Notification();  
  24.         // 设置通知的icon  
  25.         n.icon = R.drawable.notify;  
  26.         // 设置通知在状态栏上显示的滚动信息  
  27.         n.tickerText = "一个通知";  
  28.         // 设置通知的时间  
  29.         n.when = System.currentTimeMillis();  
  30.     }  
  31.     class MyOnClickListener implements OnClickListener{  
  32.         @Override  
  33.         public void onClick(View v) {  
  34.             switch (v.getId()) {  
  35.             case R.id.notify:  
  36.                 // 3.设置通知的显示参数  
  37.                 Intent intent = new Intent(MainActivity.this, NotificationView.class);  
  38.                 PendingIntent pi = PendingIntent.getActivity(MainActivity.this0, intent, 0);  
  39.                 n.setLatestEventInfo(MainActivity.this"通知标题""通知内容", pi);  
  40.                 // 4.发送通知  
  41.                 nm.notify(ID, n);  
  42.                 break;  
  43.             case R.id.cancel:  
  44.                 // 取消通知  
  45.                 nm.cancel(ID);  
  46.                 break;  
  47.             }  
  48.         }  
  49.     }  
  50. }  

打开通知后跳转到的Activity:

  1. /** 
  2.  * 打开通知后跳转的Activity 
  3.  * @author zuolongsnail 
  4.  */  
  5. public class NotificationView  extends Activity{  
  6.   
  7.     @Override  
  8.     protected void onCreate(Bundle savedInstanceState) {  
  9.         super.onCreate(savedInstanceState);  
  10.         setContentView(R.layout.view);  
  11.         // 取消通知  
  12.         NotificationManager nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);  
  13.         nm.cancel(MainActivity.ID);  
  14.     }  
  15. }  

截图:

 

补充:

Notification提示方式: 
①在状态栏(Status Bar)显示的通知文本提示,如: 
notification.tickerText = "Hello Notification";

②发出提示音,如: 
notification.defaults |= Notification.DEFAULT_SOUND; 
notification.sound = Uri.parse("
file:///sdcard/notification/ringer.mp3"); 
notification.sound = Uri.withAppendedPath(Audio.Media.INTERNAL_CONTENT_URI, "6");

③手机振动,如: 
notification.defaults |= Notification.DEFAULT_VIBRATE;

// 100 毫秒延迟后,震动 200 毫秒,暂停 100 毫秒后,再震动 300 毫秒
long[] vibrate = {100,200,100,300}; 
notification.vibrate = vibrate;

注:需要加权限<uses-permission android:name="android.permission.VIBRATE"/>

④LED灯闪烁,如: 
notification.defaults |= Notification.DEFAULT_LIGHTS; 
notification.ledARGB = 0xff00ff00; 
notification.ledOnMS = 300; 
notification.ledOffMS = 1000; 
notification.flags |= Notification.FLAG_SHOW_LIGHTS;

 

分享到:
评论

相关推荐

    Android中通知Notification使用实例(振动、灯光、声音)

    本文实例讲解了通知Notification使用方法,此知识点就是用作通知的显示,包括振动、灯光、声音等效果,分享给大家供大家参考,具体内容如下 效果图: MainActivity: import java.io.File; import android....

    Android实现Notification的通知栏常驻.zip

    本教程将详细介绍如何在Android中实现一个常驻通知栏的Notification,以确保即使在用户关闭应用后,该通知仍然可见。 一、Notification的基本结构 1. **Notification channels**: 从Android O(8.0)开始,每个...

    Android 通知(notification)简单实用Demo,包含点击功能

    这个"Notification_Test"压缩包中的代码应该包含了以上步骤的实现,你可以下载并运行来深入理解Android通知的工作原理。通过实践,你将能够熟练地在自己的应用中集成通知功能,提供更好的用户体验。同时,还可以...

    Android 通知栏Notification的全面整合学习(各种姿势都有,供您选择)

    本资源包针对Android通知栏的使用进行了全面整合,涵盖了各种应用场景和实现方式,是Android开发者深入理解与实践Notification功能的理想资料。 首先,我们来探讨Android通知的基本结构。一个通知通常包括以下组件...

    Android 8.0通知栏(Notification)适配

    这几天做一个小软件在API28(Android 9.0)的模拟器上测试时,发现通知栏无效,经过一番查询,了解到:API26(Android 8.0)以后,引入了**通知渠道(Notification Channels)**这么一个东西来帮助用户管理通知。...

    Android中使用Notification在通知栏中显示通知示例代码.rar

    Android中使用Notification在通知栏中显示通知示例代码.rar Android中使用Notification在通知栏中显示通知示例代码.rar Android中使用Notification在通知栏中显示通知示例代码.rar

    Android 之 通知Notification

    创建一个基本的Android通知通常需要以下步骤: 1. **创建通知渠道**:对于Android 8.0及更高版本,首先需要创建NotificationChannel对象,并通过NotificationManager的createNotificationChannel方法进行注册。 2....

    Android发送通知Notification

    总结一下,发送Android通知的基本流程包括获取`NotificationManager`、创建`Notification`、设置详细信息以及发送通知。为了提高用户体验,开发者还应考虑通知的可定制性,如声音、振动和渠道设置,以及遵循Android...

    Android 之 Notification 通知消息

    在Android系统中,Notification是应用与用户交互的重要方式,它能够在状态栏中显示消息,即使应用在后台运行也能提醒用户有新的活动或者信息。本文将深入探讨`Android 之 Notification 通知消息`的相关知识点,包括...

    Android中通知Notification的使用方法

    在Android开发中,通知(Notification)是用户界面中不可或缺的一部分,它允许应用在状态栏上显示消息,即使应用不在前台运行也能与用户交互。本文将详细介绍如何在Android中使用Notification,包括基本用法、响应...

    Android notification+Service实时更新

    在Android开发中,`Notification`、`Service`和`BroadcastReceiver`是三个核心组件,它们在许多场景下都有着重要的作用,特别是在实现应用后台运行、实时更新等任务时。本项目"Android notification+Service实时更新...

    Android自定义通知栏Notification

    在Android开发中,自定义通知栏Notification是一种提升用户体验的重要手段。...这个项目不仅提供了基本的自定义通知功能,也可能包含了一些进阶技巧和优化措施,对深入理解Android通知系统非常有帮助。

    android消息通知栏Notification

    在Android系统中,`Notification`是开发者用于向用户展示非交互式信息的重要工具,它通常出现在状态栏中,用户可以通过下拉通知栏查看并交互。`Notification`可以在应用不处于前台运行时,依然向用户传达重要的消息...

    notification-Android带按钮自定义通知栏

    在Android开发中,通知栏(Notification)是向用户传达应用后台事件或信息的重要途径。一个标准的通知通常包含标题、文本内容以及可选的附加操作。然而,为了提供更丰富的交互体验,开发者有时需要创建自定义通知,...

    安卓Android源码——notification1.rar

    在安卓(Android)系统中,通知(Notification)是应用程序与用户交互的重要方式,即使应用在后台运行,也能向用户展示信息。"安卓Android源码——notification1.rar"这个压缩包很可能包含了Android系统中关于通知...

    Android三种Notification(通知)方式

    本文将详细介绍Android中的三种Notification实现方式:基本通知、扩展通知和通知渠道。 一、基本通知 基本通知是最简单的通知形式,适用于传递简短的信息。创建一个基本通知主要涉及以下步骤: 1. 创建...

    Android 通知栏Notification的全面整合学习(完整项目源码)附配套博文

    这个是通知栏框架(Notificaiton)的全面学习,里面把大概所有的情况都列了出来,通过一个DEMO让你了解它的大致所有使用过程。 可以通过以下博文进行配套了解(有效果图): ...

    Android通知Notification汇总

    notification是一种出现在任务栏的提示,特别是在4.0以后notification改进了不少,本文内容都是基于4.0及4.1以后总结来的,详细介绍各种布局的Notification样式,实现音乐播放器、邮件通知等复杂的例子详细代码。

    Android应用源码之notification.zip

    - 在Android系统中,Notification通过NotificationManager服务进行管理,应用通过该服务发送和取消通知。 - 通知会出现在状态栏,当用户下拉时显示详细信息,点击可以启动对应的Activity或者执行预定义的动作。 2...

Global site tag (gtag.js) - Google Analytics