Android第二十四天Notification通知

Notification通知发出会会显示到任务栏中

1.先获取通知管理者:

//第一步:获取通知管理者! 这是一个系统级别的服务!
 manager = ((NotificationManager) getSystemService(NOTIFICATION_SERVICE));

任务栏中显示的通知样式有很多

public void onClick(View view) {
        //创建一个通知建造者对象!
        final Notification.Builder builder = new Notification.Builder(this);

        switch (view.getId()) {
            case R.id.simple_bt:
                //简单的通知   小图片 文本和标题 基本上是 通知必备的属性
                //设置通知展示的小图片
                builder.setSmallIcon(R.mipmap.ic_launcher);
                //设置通知的标题
                builder.setContentTitle("提示");
                //设置通知展示的文本
                builder.setContentText("欢乐代购~!!!!40100元!大家快来抢购数量有限!");
                //使用Manager 将通知发送出去
                //参数1 表示这个通知的id 自定义的
                //参数2 通知对象
                manager.notify(10, builder.build());
                break;
            case R.id.volume_bt:
                //复杂的通知
                builder.setSmallIcon(R.mipmap.ic_launcher_round);
                builder.setContentTitle("注意!");
                builder.setContentText("敌军还有30秒抵达战场!我方士兵出击!");
                //在任务栏里面显示文本提示
                builder.setTicker("您有新消息来啦~");
                //设置默认方式
                builder.setDefaults(Notification.DEFAULT_ALL);
                //点击通知后 是否自动消失
                builder.setAutoCancel(true);
                //点击通知跳转到另一个页面
                Intent intent = new Intent(this, SecondActivity.class);
                /**
                 *    定义一个PendingIntent 延迟意图
                 *  参数一:上下文对象
                 *  参数二: 请求码
                 *  参数三 :intent对象
                 *  参数四:表示类别 了解
                 *  FLAG_ONE_SHOT  推荐使用  只是用这一次,对象就会回收
                 *  FLAG_CANCEL_CURRENT 取消当前的再次创建一个
                 *  FLAG_NO_CREATE  没有则创建
                 *  FLAG_UPDATE_CURRENT  将当前的 更新后 再使用
                 */
                PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_ONE_SHOT);
                //设置延迟跳转
                builder.setContentIntent(pendingIntent);
                //发送这个通知
                manager.notify(11, builder.build());
                break;
            case R.id.list_bt:
                //列表
                builder.setSmallIcon(R.mipmap.ic_launcher);
                builder.setContentTitle("江南皮革厂倒闭了!");
                builder.setContentText("买一送一买不了吃亏买不了上当!");
                //设置列表
                Notification.InboxStyle style = new Notification.InboxStyle();
                builder.setStyle(style);
                String[] list = {"皮鞋不要钱", "皮带随便拿", "皮衣买一赠一", "要啥有啥", "不吃亏", "不上当!"};
                style.setBigContentTitle("宣传:");
                for (int i = 0; i < list.length; i++) {
                    //添加列表中的每一行
                    style.addLine(list[i]);
                }
                //发送当前的通知
                manager.notify(12, builder.build());

                break;
            case R.id.big_bt:
                //大图
                builder.setSmallIcon(R.mipmap.f007);
                builder.setContentTitle("新消息");
                //创建大图Style
                Notification.BigPictureStyle bigPictureStyle = new Notification.BigPictureStyle();
                //设置大图图片
                bigPictureStyle.bigLargeIcon(BitmapFactory.decodeResource(getResources(), R.mipmap.ddd));
                //设置style
                builder.setStyle(bigPictureStyle);
                //发出通知
                manager.notify(13, builder.build());
                break;
            case R.id.progress_bt:
                //进度条
                builder.setSmallIcon(R.mipmap.f007);
                builder.setContentTitle("下载进度:");
                builder.setContentText("正在玩命儿加载中...");
                //模拟一个下载过程
                new Thread() {
                    @Override
                    public void run() {
                        super.run();
                        for (int i = 0; i < 100; i++) {
                            try {
                                Thread.sleep(100);
                            } catch (InterruptedException e) {
                                e.printStackTrace();
                            }
                            /**
                             * 参数1:最大值
                             * 参数2:当前的进度
                             * 参数3: 是否模糊显示  true就是模糊的 false 就是准确的 带有刻度的!
                             */
                            builder.setProgress(100, i, false);
                            manager.notify(16, builder.build());
                        }
                        //下载完成后 取消通知  根据id 来进行操作!
                        manager.cancel(16);
                        //全部取消
//                        manager.cancelAll();
                    }
                }.start();

                break;
            case R.id.custom_bt:
                //自定义的
                //通知 显示的自定义视图必须使用这个视图对象
                RemoteViews views = new RemoteViews(getPackageName(), R.layout.custom_layout);
                //设置视图对象图片
                views.setImageViewResource(R.id.show_iv, R.mipmap.ddd);
                //设置视图文本
                views.setTextViewText(R.id.show_tv, "大家好啊更新文本");
                builder.setSmallIcon(R.mipmap.f007);
                    // 设置自定义视图
                builder.setCustomContentView(views);
                //发出通知
                manager.notify(18, builder.build());
                break;
        }

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值