通知的基本用法和一些进阶技巧
来源:互联网 发布:门户源码 编辑:程序博客网 时间:2024/06/05 16:24
1.通知的基本用法
下面来学习一下创建通知的详细步骤:
首先需要一个NotificationManager来对通知进行管理,可以调用Context的getSystemService()方法获取到:
NotificationManager manager = (NotificationManager) getSystemService(Context.NoTIFICATION_SERVICE);
接下来需要使用一个Builder构造器来创建Notification对象,support-v4库中提供了一个NotificationCompat类
Notification notification = new NotificationCompat.Builder(context).build();
对Notification对象的一些基本的设置:
Notification notification = new NotificationCompat.Builder(Context) .setContentTitle("This is content title") //用于指定通知的标题内容 .setContentText("This is content text") //用于指定通知的正文内容 .setWhen(System.currentTimeMillis()) //用于指定通知被创建的时间,以毫秒为单位 .setSmallIcon(R.drawable.small_icon) //用于设置通知的小图标 .setLargeIcon(BitmapFactory.decodeResource(getResource()), R.drawable.large_icon) //用于设置通知的大图标 .build();
以上都完成之后,只需要调用NotificationManager的notify()方法就可以让通知显示出来了:
manager.notify(1, notification);
如何给通知添加点击效果呢,这就需要用到PendingIntent了,可以把PendingIntent简单的理解为延迟执行的Intent,它主要提供了几个静态方法用于获取PengingIntent的实例,可以更具需求来选择是使用getActivity()方法、getBroadcast()方法,还是getService()方法。
Intent intent = new Intent(this, NotificationActivity.class);PendingIntent pi = PendingIntent.getActivity(this, 0, intent, 0)...Notification notification = new NotificationCompat.Builder(Context) ... .setContentIntent(pi) .build();manager.notify(1, notification);
如何做到当点击通知之后系统状态上的通知图标消失,
第一种写法:
.setAutoCancel(true) //当点击了这个通知的时候,通知会自动取消掉
第二种写法:
NotificationManager manager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);manager.cancel(1); //参数是通知的id
2.通知的进阶技巧
NotificationCompat.Builder中提供了非常丰富的的API来让我们创建出更加多样的通知效果
在通知发出的时候播放一段音频:
.setSound(Uri.fromFile(new File("/system/media/audio/ringtones/Luna.ogg")))
在通知来的时候让手机进行振动:
.setVibrate(new long[] {0, 1000, 1000, 1000})
不过要想控制手机振动还需要声明权限
<mainfest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.notificationtest" android:versionCode="1" android:versionName="1.0" ... <uses-permission android:name="android.permission.VIBRATE"/> ...</manifest>
在通知来的时候让手机LED灯显示
.setLights(Color.GREEN, 1000, 1000)
也可以直接使用通知的默认效果,它会根据当前的手机环境来决定播放什么铃声,以及如何振动,写法如下:
.setDefaults(NotificationCompat.DEFAULT_ALL)
阅读全文
0 0
- 通知的基本用法和一些进阶技巧
- iOS 通知的基本用法
- iOS 通知的基本用法
- Notification通知的基本用法
- Notification--------通知的基本用法
- 关于JPsh极光推送的基本用法和通知介绍
- iOS NSNotification通知和KVC KVO 的一些用法
- socket的一些基本结构和用法
- socket的一些基本结构和用法
- vector和list的一些基本用法
- webView的一些基本方法和用法
- Lamamda和Linq的一些基本用法
- Android中通知的基本用法
- 系统通知Notification的基本用法
- android 通知Notification的基本用法
- 安卓通知的基本用法
- 23读书笔记之通知的基本用法
- 关于Android"通知"的一些用法
- 课程作业
- 字符串总辑
- 类的for循环
- matlab调用Python的.py脚本文件
- 《计算机系统要素》概述
- 通知的基本用法和一些进阶技巧
- C++primer[习题][第四章][11-20]
- 设计模式之代理模式
- linux网络相关的命令
- 野人传教士过河
- 调用天气预报以及接口出现乱码解决方法
- python3 urllib 访问https网站
- ROIPoolingLayer源码解析
- 11.29作业