美文网首页
Notification

Notification

作者: 安卓小白之小楼又东风 | 来源:发表于2018-10-14 15:12 被阅读13次

Notification


适配android o 的通知流程

1、新建一个Channel(频道)

 private String CHANNEL_ID;
 NotificationManager notificationManager = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);
        if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) {
            CHANNEL_ID = "my_channel_01";//String类型,必须是唯一的key
            CharSequence name = "my_channel";//频道名字
            String Description = "This is my channel";
            int importance = NotificationManager.IMPORTANCE_HIGH;
            // 参数1:频道的ID。 参数2:用户可见的频道名称。 参数3:通知能打断用户的级别。
            NotificationChannel mChannel = new NotificationChannel(CHANNEL_ID, name, importance);
            // 该Channel的描述
            mChannel.setDescription(Description);
            // 设置发布到此频道的通知是否应在支持该功能的设备上显示通知灯。
            mChannel.enableLights(true);
            // 通知LED灯的颜色
            mChannel.setLightColor(Color.RED);
            // 设置发布到此频道的通知是否应该振动。
            mChannel.enableVibration(true);
            //返回发布到此通道的通知的振动模式。
            mChannel.setVibrationPattern(new long[]{100, 200, 300, 400, 500, 400, 300, 200, 400});
            mChannel.setShowBadge(false);
            if (notificationManager != null) {
                notificationManager.createNotificationChannel(mChannel);
            }
        }

详情channel
2.编写通知代码

Notification builder = new NotificationCompat.Builder(NotificationActivity.this,CHANNEL_ID)//必须加频道
                        .setContentTitle("This is title")
                        .setContentText("This is Text")
                        .setWhen(System.currentTimeMillis())//当前时间
                        .setSmallIcon(R.drawable.notication)
                        .setLargeIcon(BitmapFactory.decodeResource(getResources(),R.drawable.notication))
                        .setAutoCancel(true)
                        .setPriority(NotificationCompat.PRIORITY_DEFAULT)
                        .setLights(Color.RED,1000,1000)
                        .setStyle(new NotificationCompat.BigPictureStyle().bigPicture(BitmapFactory.decodeResource(getResources(),R.drawable.big)))
                        .build();
一个通知的布局一个通知的布局

一些进阶设置:

  • 跳转到通知的页面
  Intent intent = new Intent(NotificationActivity.this,MainActivity.class);
                PendingIntent pi = PendingIntent.getActivities(this,0,new Intent[]{intent},0);//可以跳转多个
  builder.setContentIntent(pi)
  • setStyle
builder.setStyle(new NotificationCompat.BigTextStyle().bigText("The result should be a concise but informative representation that is easy for a person to read. It is recommended that all subclasses override this method."))//文字
builder.setStyle(new NotificationCompat.BigPictureStyle().bigPicture(BitmapFactory.decodeResource(getResources(),R.drawable.big));//图片
                        
图片图片 文字文字
  • 优先级//四个参数
builder.setPriority(NotificationCompat.PRIORITY_DEFAULT);

发送通知和取消通知

notificationManager.notify(1,builder);//第一个参数是number类型,第二个参数是通知实例
notificationManager.cancel(2);//取消通知

相关文章

网友评论

      本文标题:Notification

      本文链接:https://www.haomeiwen.com/subject/kinzaftx.html