通知(Notification)

1、通知的基本用法

   //创建 NotificationManager 实例   NotificationManager manager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);   Notification notification = new NotificationCompat.Builder(this)           .setContentTitle("This is title")  //标题           .setContentText("This is content")  //正文内容           .setWhen(System.currentTimeMillis()) //通知被创建的时间           .setSmallIcon(R.mipmap.ic_launcher)  //状态栏通知图标           //通知界面的图标           .setLargeIcon(BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher))           .build();
          //发送通知

manager.notify(1, notification);

Android 6.0:   7.0:

注意:也可以直接创建 NotificationCompat.Builder 实例来一个个的设置方法,

最后修改下 manager.notify(1,builder.builder()) 就Ok。

2、给通知添加点击事件

<1> 创建 PendingIntent 实例

   Intent intent =new Intent(this,NotificationActivity.class);                                                   //指定意图   PendingIntent pi=PendingIntent.getActivity(this,0,intent,0);

<2> 调用 NotificationCompat.Builder 的 setContentIntent() 方法 ,传入 pi 就行

   .setContentIntent(pi)

<3> 点击通知后取消通知栏显示

type1:

   .setAutoCancel(true)

type2:  创建通知管理器,取消指定通知

   NotificationManager manger=(NotificationManager)getSystemService(           NOTIFICATION_SERVICE);   manger.cancel(1);

cancel方法的参数1就是发送通知时传入的  Id

3、通知栏的进阶技巧

<1>设置提示声音

   //设置声音                          路径:是系统的内置铃声目录   .setSound( Uri.fromFile(new File("/system/media/audio/ringtones/ANDROMEDA.ogg")))

<2>设置震动

先注册权限

<uses-permission android:name="android.permission.VIBRATE"/>

再,

  //设置震动             静止,震动,静止, 震动。。。。。  .setVibrate(new long[]{0,   1000, 1000, 1000})

<3>设置灯光

    //设置灯光   颜色    亮的时间  暗的时间    .setLights(Color.RED,300,     300)

还可以直接使用通知的默认效果,它会根据当前的手机环境来决定进行怎样的效果。

    builder.setDefaults(NotificationCompat.DEFAULT_ALL);

4、通知的高级功能

<1> 长文本

    //  长文字显示    builder.setStyle(new  NotificationCompat.BigTextStyle().bigText("" +            "111111111111111111111222222222222222222222223333333333333333333" +            "4444444444444444444444444444445555555555555555555555555555555" +            "666666666666666666666666666666"));

<2>图片显示

   // 图片上显示 ,注意图片不能太大   builder.setStyle(new NotificationCompat.BigPictureStyle().bigPicture           (BitmapFactory.decodeResource(getResources(),R.drawable.google)));

  

      <3>  setPriority() 方法

它接受一个整型参数用于设置这条通知重要程度,一共有5个可选值

        PRIORITY_DEFAULT,PRIORITY_MIN,PRIORITY_LOW,PRIORITY_HIGH,PRIORITY_MAX

当设置为 PRIORITY_MAX 后的显示效果 。

null

时间: 2024-08-17 06:05:27

通知(Notification)的相关文章

通知 Notification 详解

效果 通知栏-刚收到通知时 通知栏-收到通知几秒后 标准视图 大视图-下滑前是标准视图 大视图-下滑后显示大视图 自定义通知 讲解 Notification,俗称通知,是一种具有全局效果的通知,它展示在屏幕的顶端,首先会表现为一个图标的形式,当用户向下滑动的时候,展示出通知具体的内容. 注意:因为一些Android版本的兼容性问题,对于Notification而言,Android3.0是一个分水岭,在其之前构建Notification推荐使用Notification.Builder构建,而在An

【Android】状态栏通知Notification、NotificationManager详解(转)

在Android系统中,发一个状态栏通知还是很方便的.下面我们就来看一下,怎么发送状态栏通知,状态栏通知又有哪些参数可以设置? 首先,发送一个状态栏通知必须用到两个类:  NotificationManager . Notification. NotificationManager :  是状态栏通知的管理类,负责发通知.清楚通知等. NotificationManager 是一个系统Service,必须通过 getSystemService()方法来获取. [java] view plainc

观察者模式的具体应用——通知(notification)机制和KVO(Key-Value-Observing)机制

在Cocoa Touch框架中,观察者模式的具体应用有两个——通知(notification)机制和KVO(Key-Value-Observing)机制. 1.通知机制. 在iOS中通知主要有以下三种:广播通知.本地通知和推送通知.本文所说的通知是广播通知,广播通知除了名字和后两者相似之外其他完全不同.广播通知是Cocoa Touch框架中实现观察者模式的一种机制,它可以在一个应用内部的多个对象之间发送消息:本地通知和推送通知是给用户一种提示,比如警告对话框.发出声音.震动或者在应用图标上面显示

android之【本地通知Notification】

public class NotificationTest extends Activity { static final int NOTIFICATION_ID = 0x1123; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); //获取应用界面中的Button对象 Button bn =

iOS开发中通知(Notification)快速入门及推送通知实现教程

iOS开发中通知(Notification)快速入门及推送通知实现教程 标签: NSNotificationCenterNSNotification 2016-11-14 00:18 232人阅读 评论(0) 收藏 举报  分类: iOS(400)  转载自:http://www.111cn.NET/sj/ios8/90190.htm 通知(Notification)是开发框架中观察者模式的一种实现方式,内部的实现机制由Cocoa框架支持,通常用于试图控制器和数据模型的交互.通过通知,可以向一个

iOS的通知Notification

这里是不同的对象之间的通知, 不是本地通知. 一开始玩, 很挠头, 后来发现原来只是对象init的过程出了问题. 首先, 新建一个简单的单controller的工程. 然后打开它的ViewController.m文件 @interface ViewController ()@property  NotifyObserver *obj;    //这里是关键, 应该有一个property是另一个要通知的类的, 我之前写在了viewDidLoad里面, 结果死活通知没有响应, 其实原因是这个对象在v

h5桌面通知Notification

H5中的桌面通知Notification 前言: 对于一个前段开发者,逛网页总会留意一些新奇的功能,对于上班总会用到Teambition的我,总是能收到Notification...所以今天就来研究下这个H5功能... 1. 实例一个Notification let n = new Notification( "这是一个通知消息", //这是必选Title 一定会显示的通知标题 { icon: "xxx.png", // 这个icon是用来显示通知中的左边图片 bo

自定义通知Notification:自己定义通知Notification下拉后的显示样式

注意:以下有些方法需要在build.gradle里修改minSdkVersion 21才能使用 只需在构建普通Notification的构建器builder上添加对bigContentView属性设置为RemoteView(自定义的通知样式),如需要对通知展开视图RemoteView里的UI控件设置监听,需要通过设置广播和RemoteView的setOnClickPendingIntent()方法配合使用 Notification notification; NotificationManage

安卓学习之通知(Notification)

安卓中创建通知需要借助NotificationManager来对通知进行管理.可以调用Context的getsSystemService()方法来获得. getsSystemService()方法接收一个参数,这个参数是字符串,用于指定哪一个服务.Context.NOTIFICATION_SERVICE 就是指定通知服务. 这个方法返回一个Object对象,所欲需要进行强制转换. NotificationManager manager = (NotificationManager) getSys

Android通知Notification

一个小demo.点击 发送通知 按钮,则发送通知到设备的通知栏.点击 清除通知 则清除通知栏上的消息通知. package zhangphil.notification; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.app.Activity; import android.app.Notification; import android.app.N