通知栏

通知栏

1.普通通知
2.自定义通知
3.进度条通知

1.普通通知 在这里插入图片描述

代码如下

 b1.setOnClickListener(new View.OnClickListener() {
            @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN)
            @Override
            public void onClick(View v) {
                //1.通知管理者
                NotificationManager systemService = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);

                //2.通知构建者
                Notification.Builder builder = new Notification.Builder(MainActivity.this);
                //必须设置一个小图标属性
                builder.setSmallIcon(R.mipmap.ic_launcher);

                builder.setContentTitle("您中奖啦!");
                builder.setContentText("今天你有一个1亿元大红包!!!");
                builder.setContentInfo("我是附加信息");
                builder.setTicker("我是提示信息");
                //设置点击自动消失
                builder.setAutoCancel(true);
                builder.setDefaults(Notification.DEFAULT_ALL);//效果是震动 音效 呼吸灯
                Intent intent = new Intent(MainActivity.this,Main2Activity.class);
                //1.上下文2.请求码3.intent 4.flag
                PendingIntent activity = PendingIntent.getActivity(MainActivity.this, 100, intent, PendingIntent.FLAG_ONE_SHOT);
                builder.setContentIntent(activity);
                //3.发送通知

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

2.自定义通知
在这里插入图片描述
代码如下

  b2.setOnClickListener(new View.OnClickListener() {
            @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN)
            @Override
            public void onClick(View v) {
                NotificationManager systemService = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);

                //2.通知构建者
                Notification.Builder builder = new Notification.Builder(MainActivity.this);
                //必须设置一个小图标属性
                builder.setSmallIcon(R.drawable.tu);
                //设置自定义布局

                RemoteViews remoteViews = new RemoteViews(getPackageName(),R.layout.layout);
                builder.setContent(remoteViews);//remoteview
                remoteViews.setTextViewText(R.id.w1,"《沙雕》");


                //设置点击自动消失
                builder.setAutoCancel(true);

                //3.发送通知

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

3.进度条通知 分为两个 模拟下载通知
一个是下载中 一个是正在安装中
在这里插入图片描述

在这里插入图片描述

代码如下

 b3.setOnClickListener(new View.OnClickListener() {
            @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN)
            @Override
            public void onClick(View v) {
               final NotificationManager manager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);

                final Notification.Builder builder = new Notification.Builder(MainActivity.this);
                builder.setContentTitle("正在下载");
                builder.setSmallIcon(R.drawable.tu);
                manager.notify(3,builder.build());

                final Timer timer = new Timer();
                timer.schedule(new TimerTask() {
                    int a=0;
                    @Override
                    public void run() {
                        builder.setProgress(100,a+=10,false);
                        manager.notify(3,builder.build());
                        if(a==100){
                            builder.setContentTitle("正在安装");
                            builder.setProgress(100,a+=10,true);
                            manager.notify(3,builder.build());

                            try {
                                Thread.sleep(2000);
                                Message obtain = Message.obtain();
                                obtain.obj="s";
                                MainActivity.this.handler.sendMessage(obtain);
                            } catch (InterruptedException e) {
                                e.printStackTrace();
                            }
                            manager.cancel(3);
                            timer.cancel();

                        }

                    }
                },0,1000);



            }
        });

双击关闭
在这里插入图片描述
代码如下

    long pre;//记录上一次时间
    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if(keyCode==KeyEvent.KEYCODE_BACK){

            long timeMillis = System.currentTimeMillis();
            if((timeMillis-pre)<=1000){
                pre=timeMillis;
                finish();//退出关闭页面

            }else{
                pre=timeMillis;
                Toast.makeText(this, "再按一次退出", Toast.LENGTH_SHORT).show();
                return  false;
            }
        }
        return super.onKeyDown(keyCode, event);
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值