《第一行代码》学习笔记之通知的基本用法
《第一行代码》学习笔记之通知的基本用法
获取NotificationManager的实例
NotificationManager manager =
(NotificationManager)getSystemService(NOTIFICATION_SERVICE);
创建Notification对象,用于存储通知所需的各种信息
- 第一个参数用于指定通知的图标
- 第二个参数用于指定通知的ticker内容,在通知创建时一闪而过,属于一种瞬时的提示信息
- 第三个参数用于指定通知被创建的时间,以毫秒为单位
Notification notification = new Notification(
R.drawable.ic_launcher,
"This is ticker text", System.currentTimeMillis());
对通知的布局进行设定:
notification.setLatestEventInfo(this, "This is content title",
"This is content text", null);
notify()方法接收的两个参数:第一个参数是id,保证每个通知所指定的id都是不同的,第二个参数则是Notification对象
manager.notify(1, notification);
实现通知的点击效果,第四个参数用于确定PendingIntent的行为:
Intent intent = new Intent(this, NotificationActivity.class);
PendingIntent pi = PendingIntent.getActivity(this, 0,
intent, PendingIntent.FLAG_CANCEL_CURRENT);
注册声明,根据自己定义的类名声明:
<activity android:name=".NotificationActivity">
</activity>
点击通知后,取消系统状态栏上的通知图标:
NotificationManager manager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
//取消通知,传入相应的id
manager.cancel(1);
通知到来时设置手机振动:
- 第一个:手机静止时长
- 第二个:手机振动时长
- 第三个:手机静止时长,以此类推
long[] vibrate = {0, 1000, 1000, 1000};
notification.vibrate = vibrate;
加入振动权限:
<uses-permission android:name="android.permission.VIBRATE" />
设置LED灯闪烁:
//控制LED灯的颜色
notification.ledARGB = Color.GREEN;
//LED亮起的时长
notification.ledOnMS = 1000;
//指定LED灯暗去的时长
notification.ledOffMS = 1000;
//指定通知的一些行为
notification.flags = Notification.FLAG_SHOW_LIGHTS;
直接使用通知的默认效果:
notification.defaults = Notification.DEFAULT_ALL;