通知(Notification)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了通知(Notification)相关的知识,希望对你有一定的参考价值。
通知(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 后的显示效果 。
以上是关于通知(Notification)的主要内容,如果未能解决你的问题,请参考以下文章