《第一行代码》学习笔记之通知的基本用法

《第一行代码》学习笔记之通知的基本用法

获取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;

你可能感兴趣的:(Android)