Android中的消息通知

下面来谈谈notification,这个notification一般用在电话,短信,邮件,闹钟铃声,在手机的状态栏上就会出现一个小图标,提示用户处理这个通知,这时手从上方滑动状态栏就可以展开并处理这个快讯。已添加的Notification.Builder,使其更容易构建通知。notification是一种让你的应用程序在没有开启情况下或在后台运行警示用户。它是看不见的程序组件(Broadcast Receiver,Service和不活跃的Activity)警示用户有需要注意的事件发生的最好途径。
    先来区分以下状态栏和状态条的区别:

    1、状态条就是手机屏幕最上方的一个条形状的区域;

          在状态条有好多信息量:比如usb连接图标,手机信号图标,电池电量图标,时间图标等等;

    2、状态栏就是手从状态条滑下来的可以伸缩的view;

          在状态栏中一般有两类(使用FLAG_标记):

          (1)正在进行的程序;

          (2)是通知事件;

 

     快速创建一个Notification的步骤简单可以分为以下四步:

第一步:通过getSystemService()方法得到NotificationManager对象;

 

Java代码   收藏代码
  1. nManager = (NotificationManager) this.getSystemService(service);  

  第二步:对Notification的一些属性进行设置比如:内容,图标,标题,相应notification的动作进行处理等等;

 

Java代码   收藏代码
  1. notification.icon = R.drawable.ic_launcher;// 设置通知的图标  
  2. notification.tickerText = tickerText; // 显示在状态栏中的文字  
  3. notification.when = when; // 设置来通知时的时间  
  4. notification.sound = Uri.parse("android.resource://com.sun.alex/raw/dida"); // 自定义声音  
  5. notification.flags = Notification.FLAG_NO_CLEAR; // 点击清除按钮时就会清除消息通知,但是点击通知栏的通知时不会消失  
  6. notification.flags = Notification.FLAG_ONGOING_EVENT; // 点击清除按钮不会清除消息通知,可以用来表示在正在运行  
  7. notification.flags |= Notification.FLAG_AUTO_CANCEL; // 点击清除按钮或点击通知后会自动消失  
  8. notification.flags |= Notification.FLAG_INSISTENT; // 一直进行,比如音乐一直播放,知道用户响应  
  9. notification.defaults = Notification.DEFAULT_SOUND; // 调用系统自带声音  
  10. notification.defaults = Notification.DEFAULT_VIBRATE;// 设置默认震动  
  11. notification.defaults = Notification.DEFAULT_ALL; // 设置铃声震动  
  12. notification.defaults = Notification.DEFAULT_ALL; // 把所有的属性设置成默认  

  第三步:通过NotificationManager对象的notify()方法来执行一个notification的消息;

 

Java代码   收藏代码
  1. nManager.notify(ID, notification);  

  第四步:通过NotificationManager对象的cancel()方法来取消一个notificatioin的消息;

Java代码   收藏代码
  1. nManager.cancel(ID);  

 Notification.build构造Notification方法介绍:   

     void setLatestEventInfo(Context context , CharSequencecontentTitle,CharSequence  contentText,PendingIntent contentIntent)  

        功能: 显示在拉伸状态栏中的Notification属性,点击后将发送PendingIntent对象

        参数:    context              上下文环境

                      contentTitle       状态栏中的大标题

                      contentText       状态栏中的小标题

                      contentIntent    点击后将发送PendingIntent对象

      说明:要是在Notification中加入图标,在状态栏和状态条中显示图标一定要用这个方法,否则报错!

 

NotificationManager类的常用方法:

             通过获取系统服务来获取该对象:           

                NotificationManager mNotificationManager = (NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE) ;

 

      NotificationManager常用方法介绍:

               public  void cancelAll()                                                          移除所有通知 (只是针对当前Context下的Notification)

               public  void cancel(int id)                                                      移除标记为id的通知 (只是针对当前Context下的所有Notification)

               public  void notify(String tag ,int id, Notification notification) 将通知加入状态栏, 标签为tag,标记为id

               public  void notify(int id, Notification notification)                   将通知加入状态栏,,标记为id

 

Java代码   收藏代码
  1. package com.sun.alex;  
  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.Intent;  
  8. import android.net.Uri;  
  9. import android.os.Bundle;  
  10. import android.view.View;  
  11. import android.view.View.OnClickListener;  
  12. import android.widget.Button;  
  13.   
  14. public class NotificationActivity extends Activity {  
  15.   
  16.     private Button sendBtn, cancelBtn;  
  17.     private Notification notification;  
  18.     private NotificationManager nManager;  
  19.     private Intent intent;  
  20.     private PendingIntent pIntent;  
  21.     // Notification的标示ID  
  22.     private static final int ID = 1;  
  23.   
  24.     @Override  
  25.     public void onCreate(Bundle savedInstanceState) {  
  26.         super.onCreate(savedInstanceState);  
  27.         setContentView(R.layout.main);  
  28.   
  29.         sendBtn = (Button) this.findViewById(R.id.send);  
  30.         cancelBtn = (Button) this.findViewById(R.id.cancel);  
  31.   
  32.         String service = NOTIFICATION_SERVICE;  
  33.         nManager = (NotificationManager) this.getSystemService(service);  
  34.   
  35.         notification = new Notification();  
  36.         String tickerText = "测试Notifaction"// 通知提示  
  37.         // 显示时间  
  38.         long when = System.currentTimeMillis();  
  39.   
  40.         notification.icon = R.drawable.ic_launcher;// 设置通知的图标  
  41.         notification.tickerText = tickerText; // 显示在状态栏中的文字  
  42.         notification.when = when; // 设置来通知时的时间  
  43.         notification.sound = Uri.parse("android.resource://com.sun.alex/raw/dida"); // 自定义声音  
  44.         notification.flags = Notification.FLAG_NO_CLEAR; // 点击清除按钮时就会清除消息通知,但是点击通知栏的通知时不会消失  
  45.         notification.flags = Notification.FLAG_ONGOING_EVENT; // 点击清除按钮不会清除消息通知,可以用来表示在正在运行  
  46.         notification.flags |= Notification.FLAG_AUTO_CANCEL; // 点击清除按钮或点击通知后会自动消失  
  47.         notification.flags |= Notification.FLAG_INSISTENT; // 一直进行,比如音乐一直播放,知道用户响应  
  48.         notification.defaults = Notification.DEFAULT_SOUND; // 调用系统自带声音  
  49.         notification.defaults = Notification.DEFAULT_SOUND;// 设置默认铃声  
  50.         notification.defaults = Notification.DEFAULT_VIBRATE;// 设置默认震动  
  51.         notification.defaults = Notification.DEFAULT_ALL; // 设置铃声震动  
  52.         notification.defaults = Notification.DEFAULT_ALL; // 把所有的属性设置成默认  
  53.   
  54.         sendBtn.setOnClickListener(sendClickListener);  
  55.         cancelBtn.setOnClickListener(cancelClickListener);  
  56.     }  
  57.   
  58.     private OnClickListener sendClickListener = new OnClickListener() {  
  59.         @Override  
  60.         public void onClick(View v) {  
  61.             // 单击通知后会跳转到NotificationResult类  
  62.             intent = new Intent(NotificationActivity.this,  
  63.                     NotificationResult.class);  
  64.             // 获取PendingIntent,点击时发送该Intent  
  65.             pIntent = PendingIntent.getActivity(NotificationActivity.this0,  
  66.                     intent, 0);  
  67.             // 设置通知的标题和内容  
  68.             notification.setLatestEventInfo(NotificationActivity.this"标题",  
  69.                     "内容", pIntent);  
  70.             // 发出通知  
  71.             nManager.notify(ID, notification);  
  72.         }  
  73.     };  
  74.   
  75.     private OnClickListener cancelClickListener = new OnClickListener() {  
  76.         @Override  
  77.         public void onClick(View v) {  
  78.             // 取消通知  
  79.             nManager.cancel(ID);  
  80.         }  
  81.     };  
  82. }  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android的顶部消息通知是指在手机屏幕的顶部弹出的一种通知形式。这种通知可以在任何时候出现,无论用户当前正在使用哪个应用程序,都能够及时地提醒用户一些重要事件或者消息Android的顶部消息通知通常以图标和文字的形式展示在通知栏上方。当有新的消息到来时,通知栏会弹出一个通知图标,同时也会发出声音或者振动提醒用户。用户可以通过下拉通知栏来查看具体的通知内容,包括消息的标题、内容以及其他相关信息。 Android的顶部消息通知具有以下几个特点: 1. 功能强大:顶部消息通知不仅可以提醒用户新消息的到来,还可以提供一些操作选项,比如直接回复消息、查看详细内容或者跳转到相关应用程序。 2. 可扩展性:开发者可以通过Android提供的通知管理器来创建和管理顶部消息通知,可以自定义通知的图标、标题、内容等,并且可以根据需要设置是否发出声音、振动或者闪光等提醒方式。 3. 多任务管理:Android的顶部消息通知可以同时显示多个通知,用户可以通过下拉通知栏来查看所有的通知内容,方便用户随时掌握各种事件的最新状态。 4. 用户友好性:Android的顶部消息通知对用户来说是一种非入侵式的提醒方式,不会打断用户当前的操作,同时用户也可以根据自己的需要选择是否忽略或者清除某个通知。 总之,Android的顶部消息通知是一种重要的功能,它可以及时地提醒用户重要事件的发生,并且能够进行灵活的操作和管理。这种通知方式在提升用户体验、增强应用可用性方面具有重要作用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值