Notitfcation通知

简单的通知

代码展示

 private void initView() {
    btn_Button = (Button) findViewById(R.id.btn_button);
    btn_Button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            //管理者
            NotificationManager manager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
            Notification.Builder builder = new Notification.Builder(MainActivity.this);
            builder.setContentTitle("我是标题");
            builder.setContentText("我是内容");
            builder.setSmallIcon(R.mipmap.ic_launcher);//小图标必须设置
            builder.setGroup("组1");
            被设置setGroupSummary为true的消息会隐藏内容,其内容会显示另外分组成员信息.
            builder.setGroupSummary(false);
            //创建发送的对象  构建一下
            Notification build = builder.build();

            Notification.Builder builder1 = new Notification.Builder(MainActivity.this);
            builder1.setContentTitle("我是标题111");
            builder1.setSmallIcon(R.mipmap.ic_launcher);
            builder1.setContentText("我是内容111");
            builder1.setGroup("组1");

            //通知
            //id值相同就是更新
            manager.notify(1,build);
            manager.notify(2, builder1.build());


        }
    });
}

效果展示

在这里插入图片描述

注意事项

设置小图标必须设置,不然会报错,不出效果。

通知分组

代码展示

private void initView() {
    btn_Button = (Button) findViewById(R.id.btn_button);
    btn_Button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            //管理者
            NotificationManager manager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
            Notification.Builder builder = new Notification.Builder(MainActivity.this);
            builder.setContentTitle("我是标题");
            builder.setContentText("我是内容");
            builder.setSmallIcon(R.mipmap.ic_launcher);//小图标必须设置
            builder.setGroup("组1");
            被设置setGroupSummary为true的消息会隐藏内容,其内容会显示另外分组成员信息.
            builder.setGroupSummary(false);
            //创建发送的对象  构建一下
            Notification build = builder.build();

            Notification.Builder builder1 = new Notification.Builder(MainActivity.this);
            builder1.setContentTitle("我是标题111");
            builder1.setSmallIcon(R.mipmap.ic_launcher);
            builder1.setContentText("我是内容111");
            builder1.setGroup("组1");

            //通知
            //id值相同就是更新
            manager.notify(1,build);
            manager.notify(2, builder1.build());


        }
    });
}

效果展示

在这里插入图片描述

注意事项

首先,组名必须得是一样的。
其次,( 被设置setGroupSummary为true的消息会隐藏内容,其内容会显示另外分组成员信息.)就是设置了的通知会隐藏,不会显示出来。

进度条通知

代码展示

private void initView() {
    btn_Pro = (Button) findViewById(R.id.btn_pro);
    btn_Pro.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            //获取通知的管理者
            final NotificationManager systemService = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
            //获取通知的构建
            final Notification.Builder builder = new Notification.Builder(Main2Activity.this);
            //设置小图标  必须有
            builder.setSmallIcon(R.mipmap.ic_launcher);
            //设置内容,标题
            builder.setContentTitle("我是标题");
            builder.setContentText("我是内容");
            //true就是模糊的进度 false是准确的进度
            builder.setProgress(100,0,false);
            final Timer timer = new Timer();
            timer.schedule(new TimerTask() {
                int index = 0;
                @Override
                public void run() {
                    index += 10;
                    builder.setProgress(100,index,false);
                    systemService.notify(1,builder.build());
                    if(index >= 100){
                        timer.cancel();
                        builder.setContentText("正在安装。。。");
                        builder.setProgress(0,0,true);
                        systemService.notify(1,builder.build());
                        try {
                            Thread.sleep(5000);
                        } catch (InterruptedException e) {
                            e.printStackTrace();
                        }
                        systemService.cancel(1);
                    }
                }
            },0,1000);

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

效果展示

在这里插入图片描述

PendingIntent通知

代码展示

private void initView() {
    btn_Intent = (Button) findViewById(R.id.btn_intent);
    btn_Intent.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            //用于通知的管理者
            NotificationManager systemService = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
            Notification.Builder builder = new Notification.Builder(Main3Activity.this);
            //必须设置小图标
            builder.setSmallIcon(R.mipmap.ic_launcher);
            builder.setContentText("我是内容");
            builder.setContentTitle("我是标题");

            Intent intent = new Intent(Main3Activity.this,MainActivity.class);
            PendingIntent pendingIntent = PendingIntent.getActivity(Main3Activity.this,200,intent,PendingIntent.FLAG_CANCEL_CURRENT);
            //加载
            builder.setFullScreenIntent(pendingIntent,true);
            //自动取消
            builder.setAutoCancel(true);
            //级别
            builder.setPriority(Notification.PRIORITY_MAX);
            //这个必须加,否则会出不来
            builder.setDefaults(Notification.DEFAULT_ALL);
            systemService.notify(1,builder.build());


        }
    });
}

效果展示

在这里插入图片描述

注意事项

可以跳转,并且设置优先级的时候必须也得设置builder.setPriority()的属性,否则不会出来。

自定义通知

代码展示

private void initView() {
    btn_Lauout = (Button) findViewById(R.id.btn_lauout);
    btn_Lauout.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            //管理者
            NotificationManager systemService = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
            Notification.Builder builder = new Notification.Builder(Main4Activity.this);
            builder.setSmallIcon(R.mipmap.ic_launcher);
            builder.setContentTitle("我是标题");
            builder.setContentText("我是内容");

            RemoteViews remoteViews = new RemoteViews(getPackageName(),R.layout.remote_layout);
            remoteViews.setTextViewText(R.id.tv_tou,"哈哈哈");

            builder.setCustomContentView(remoteViews);

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


LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal" android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
    android:id="@+id/tv_tou"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="头部"
    android:textSize="30sp"/>

<TextView
    android:id="@+id/tv_wei"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="尾部"
    android:textSize="30sp"/>

效果展示

在这里插入图片描述

注意事项

必须得有一个用于展示的布局,然后在去替换自己想要展示的通知。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值