双击退出,Notitfcation 通知

双击退出

    ///双击退出
    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        //判断是否是退出键
        if (keyCode == KeyEvent.KEYCODE_BACK) {
            if (System.currentTimeMillis() - exitTime > 2000) {
                Toast.makeText(this, "再次点击退出", Toast.LENGTH_SHORT).show();
                exitTime = System.currentTimeMillis();
                return true;
            } else {
                finish();
            }
        }
        return super.onKeyDown(keyCode, event);
    }

Notitfcation 通知

  private Button send;
  //通知
        send.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //系统中获取通知管理者
                NotificationManager manager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
                //创建管理者
                Notification.Builder builder = new Notification.Builder(MainActivity.this);
                builder.setContentTitle("我是标题");
                builder.setContentTitle("我是内容");
                //设置默认灯光、声音、震动
                builder.setDefaults(Notification.DEFAULT_ALL);
                //设置小图标   这是必须加的
                builder.setSmallIcon(R.drawable.ic_launcher_background);
                Notification build = builder.build();
                //发送通知
                manager.notify(1, build);
            }
        });

自定义通知

 //这是自定义消息管理
        customId = (Button) findViewById(R.id.custom_id);
        customId.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //获取系统管理
                NotificationManager manager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
                //创建构造者
                Notification.Builder builder = new Notification.Builder(MainActivity.this);
                //设置小图标
                builder.setSmallIcon(R.drawable.ic_launcher_background);
                //设置标题
                builder.setContentTitle("这是标题");
                builder.setContentText("这是内容");
                //创建远程通知管理    里面有两个参数第一个是所在布局包名,第二个是引入布局的id
                RemoteViews remoteViews = new RemoteViews(getPackageName(), R.layout.layout_remote);
                //RemoteViews不能够像正常的方法UI去更新,所以它提供了set设置这些方法的子集
                remoteViews.setTextViewText(R.id.text_id, "滴滴滴滴");
                remoteViews.setImageViewResource(R.id.img_id, R.mipmap.ic_launcher);
                //将远程通知对象设置给管理者
                builder.setCustomContentView(remoteViews);
                //创建发送对象
                Notification build = builder.build();
                //发送通知 通知的id,发送的对象
                manager.notify(1, build);
            }

        });

分组通知

   //这是分组消息管理
        sendgroupId = (Button) findViewById(R.id.sendgroup_id);
        sendgroupId.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //获取系统管理
                NotificationManager manager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
                Notification.Builder builder1 = new Notification.Builder(MainActivity.this);
                Notification.Builder builder2 = new Notification.Builder(MainActivity.this);
                Notification.Builder builder3 = new Notification.Builder(MainActivity.this);

                //设置消息分组属性setGroup,其内容相同才能够分配到一个消息管理
                builder1.setGroup("2");
                //哪个通知管理者设置setGroupSummary为true哪个消息就会被隐藏,其显示别的通知管理者的消息
                builder1.setGroupSummary(true);
                builder1.setSmallIcon(R.drawable.ic_launcher_background);
                builder1.setContentTitle("我是标题");
                builder1.setContentText("我是内容");
                builder1.setDefaults(Notification.DEFAULT_ALL);

                builder2.setGroup("2");
                builder2.setGroupSummary(true);
                builder2.setSmallIcon(R.drawable.ic_launcher_background);
                builder2.setContentTitle("我是标题2");
                builder2.setContentText("我是内容2");
                builder2.setDefaults(Notification.DEFAULT_ALL);

                builder3.setGroup("2");
                builder3.setSmallIcon(R.drawable.ic_launcher_background);
                builder3.setContentTitle("我是标题3");
                builder3.setContentText("我是内容3");
                builder3.setDefaults(Notification.DEFAULT_ALL);

                //发送通知
                manager.notify(1, builder1.build());
                manager.notify(2, builder2.build());
                manager.notify(3, builder3.build());

            }
        });

进度条通知

  //这是进度条通知
        proressId = (Button) findViewById(R.id.proress_id);
        proressId.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //获取系统管理
                final NotificationManager manager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
                //创建管理者
                final Notification.Builder builder = new Notification.Builder(MainActivity.this);
                builder.setSmallIcon(R.drawable.ic_launcher_background);
                builder.setContentTitle("这是标题");
                builder.setContentText("这是内容");
                final Timer timer = new Timer();
                timer.schedule(new TimerTask() {
                    int index;

                    @Override
                    public void run() {
                        //下载进度
                        builder.setContentText("正在下载,当前进度" + index);
                        //设置进度条
                        builder.setProgress(100, index, false);
                        index += 10;
                        manager.notify(2, builder.build());
                        //进度条到100时
                        if (index == 100) {
                            builder.setContentText("正在安装,请稍后");
                            builder.setProgress(0, 0, true);
                            manager.notify(2, builder.build());
                            try {
                                //设置延时
                                Thread.sleep(3000);
                            } catch (InterruptedException e) {
                                e.printStackTrace();
                            }
                            //完成安装取消消息通知
                            manager.cancel(2);
                            timer.cancel();
                        }
                    }
                }, 0, 1000);
            }
        });

点击通知跳转

  turnId = (Button) findViewById(R.id.turn_id);
        //这是跳转交互的通知
        turnId.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                NotificationManager manager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
                Notification.Builder builder = new Notification.Builder(MainActivity.this);
                builder.setSmallIcon(R.drawable.ic_launcher_background);
                builder.setContentTitle("这是标题");
                builder.setContentText("这是内容");
                Intent intent = new Intent(MainActivity.this, Main2Activity.class);
                //获取一个启动Activity的PendingIntent对象
                 // 第一个参数是上下文
                // 第二个参数是 请求码,多个请求码不一样即可
                // 第三个参数是 intent
                // 第四个参数是 flags 可写0;
                PendingIntent activity = PendingIntent.getActivity(MainActivity.this, 0, intent, PendingIntent.FLAG_CANCEL_CURRENT);
                //将pendingIntent对象设置给管理者
                builder.setContentIntent(activity);
                //点击完通知消失
                builder.setAutoCancel(true);
                //通知级别
                builder.setPriority(Notification.PRIORITY_MAX);
                //设置灯光震动
                builder.setDefaults(Notification.DEFAULT_ALL);
                //创建发送对象
                Notification build = builder.build();
                //发送消息
                manager.notify(1, build);
            }
        });
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值