Notification 通知

小图标和标题必须设置!

普通通知

在这里插入图片描述

setDefaults(),是设置震呼吸灯、声音。
setAutoCancel(true),点击通知关闭。

 private void showNotificaTion() {
        NotificationManager systemService = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
        Notification.Builder builder = new Notification.Builder(this);

        //小图标
        builder.setSmallIcon(R.mipmap.a);

//        builder.setLargeIcon(R.mipmap.a);
        builder.setContentTitle("通知标题");
        builder.setContentText("通知消息内容");
        builder.setTicker("提示获得消息");
        //附加消息
        builder.setContentInfo("附加消息");
        //震动呼吸灯声音
        builder.setDefaults(Notification.DEFAULT_ALL);
        //点击通知关闭
        builder.setAutoCancel(true);

        //点击跳转
        Intent intent = new Intent(this, MainActivity.class);
        PendingIntent intent1 = PendingIntent.getActivity(this, 10, intent, PendingIntent.FLAG_ONE_SHOT);
        builder.setContentIntent(intent1);

        Notification build = builder.build();
        //发送通知
        systemService.notify(200,build);
    }

进度条通知

在这里插入图片描述
计时器记得调start()方法

int progress=0;
    private void showProgressBarNotiFicaTion() {
        progress=0;
        final NotificationManager systemService = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);

        final Notification.Builder builder = new Notification.Builder(this);
        builder.setContentTitle("进度条通知");
        builder.setSmallIcon(R.mipmap.a);


        //计时器
        CountDownTimer countDownTimer = new CountDownTimer(11000, 1000) {
            @Override
            public void onTick(long millisUntilFinished) {
                progress+=10;
                builder.setProgress(100,progress,false);
                systemService.notify(1,builder.build());
            }
            @Override
            public void onFinish() {
                systemService.cancel(1);
            }
        }.start();
        
        systemService.notify(1,builder.build());
    }

大图通知

在这里插入图片描述

private void showBitmapNotification() {
        NotificationManager systemService = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);

        Notification.Builder builder = new Notification.Builder(this);
        builder.setContentTitle("大图通知");
        builder.setSmallIcon(R.mipmap.a);
        builder.setAutoCancel(true);

        Intent intent = new Intent(this, MainActivity.class);
        PendingIntent activity = PendingIntent.getActivity(this, 10, intent, PendingIntent.FLAG_ONE_SHOT);
        builder.setContentIntent(activity);

        //设置大图
        Notification.BigPictureStyle bigPictureStyle = new Notification.BigPictureStyle();
        bigPictureStyle.bigPicture(BitmapFactory.decodeResource(getResources(),R.mipmap.a));
        //添加进builder
        builder.setStyle(bigPictureStyle);
        
        systemService.notify(2,builder.build());
    }

列表-悬挂通知

在这里插入图片描述
在这里插入图片描述

使用悬挂通知,setFullScreenIntent()必须有。
PendingIntent:等待中的intent。

 private void showListNotification() {

        NotificationManager systemService = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);

        Notification.Builder builder = new Notification.Builder(this);
        builder.setContentTitle("悬挂通知");
        builder.setSmallIcon(R.mipmap.a);

        Notification.InboxStyle inboxStyle = new Notification.InboxStyle();
        inboxStyle.addLine("aaaa");
        inboxStyle.addLine("bbbb");
        inboxStyle.addLine("3cccc");
        inboxStyle.addLine("aaaa");
        inboxStyle.addLine("bbbb");
        inboxStyle.addLine("6cccc");
        inboxStyle.addLine("aaaa");
        inboxStyle.addLine("bbbb");
        inboxStyle.addLine("9cccc");

        builder.setStyle(inboxStyle);
        Intent intent = new Intent(this, MainActivity.class);
        PendingIntent activity = PendingIntent.getActivity(this, 10, intent, PendingIntent.FLAG_ONE_SHOT);

        //悬挂通知-必须要有
        builder.setFullScreenIntent(activity,true);

        builder.setContentIntent(activity);
        builder.setAutoCancel(true);

        systemService.notify(3,builder.build());
    }

自定义通知

在这里插入图片描述
用RemoteViews添加自定义xml文件布局。

 private void showViewNotification() {
        //只能自定义图片和文字
        NotificationManager systemService = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);

        Notification.Builder builder = new Notification.Builder(this);
        builder.setSmallIcon(R.mipmap.a);
        builder.setContentTitle("自定义通知");

        RemoteViews remoteViews = new RemoteViews(getPackageName(), R.layout.layout_item);
        remoteViews.setTextViewText(R.id.textView,"测试");
        remoteViews.setImageViewResource(R.id.imageView,R.mipmap.ic_launcher);
        builder.setContent(remoteViews);
        //API版本7以上用
//        builder.setCustomContentView(remoteViews);

        //点击通知关闭
        builder.setAutoCancel(true);
        Intent intent = new Intent(this, MainActivity.class);
        PendingIntent activity = PendingIntent.getActivity(this, 10, intent, PendingIntent.FLAG_ONE_SHOT);
        builder.setContentIntent(activity);

        systemService.notify(4,builder.build());


    }

分组通知

在这里插入图片描述

分组通知要用真机测试,模拟器不能实现想要的效果。

 @RequiresApi(api = Build.VERSION_CODES.KITKAT_WATCH)
    private void showGroupNotification() {
        NotificationManager systemService = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);

        Notification.Builder builder1 = new Notification.Builder(this);
        Notification.Builder builder2 = new Notification.Builder(this);
        Notification.Builder builder3 = new Notification.Builder(this);
        Notification.Builder builder4 = new Notification.Builder(this);

        builder1.setContentTitle("1");
        builder2.setContentTitle("2");
        builder3.setContentTitle("3");
        builder4.setContentTitle("4");

        builder1.setGroup("1");
        builder2.setGroup("1");
        builder3.setGroup("1");
        builder4.setGroup("1");

        builder1.setTicker("提示获得一条消息");
        builder1.setSmallIcon(R.mipmap.a);
        builder1.setContentText("1");
        builder2.setTicker("提示获得两条消息");
        builder2.setSmallIcon(R.mipmap.a);
        builder2.setContentText("2");
        builder3.setTicker("提示获得三条消息");
        builder3.setSmallIcon(R.mipmap.a);
        builder3.setContentText("3");
        builder4.setTicker("提示获得四条消息");
        builder4.setSmallIcon(R.mipmap.a);
        builder4.setContentText("4");

        Intent intent = new Intent(this, MainActivity.class);
        PendingIntent activity = PendingIntent.getActivity(this, 10, intent, PendingIntent.FLAG_ONE_SHOT);
        builder1.setContentIntent(activity);

        systemService.notify(7,builder1.build());
        systemService.notify(8,builder2.build());
        systemService.notify(9,builder3.build());
        systemService.notify(10,builder4.build());

    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值