博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
第4天Notification通知和自定义Toast
阅读量:3786 次
发布时间:2019-05-22

本文共 4741 字,大约阅读时间需要 15 分钟。

第4天Notification通知和自定义Toast

0,双击退出

activity中重写onKeyDown方法

@Override    public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_DOWN) {
long secondTime = System.currentTimeMillis(); if (secondTime - firstTime > 2000) {
Toast.makeText(KeyEventActivity.this, "再按一次退出程序", Toast.LENGTH_SHORT).show(); firstTime = secondTime; return true; } else{
finish(); } } return super.onKeyDown(keyCode, event); }

一,自定义吐司

//1.创建吐司对象       Toast toast= new Toast(Main3Activity.this);       View view2=LayoutInflater.from(Main3Activity.this).inflate(R.layout.pop,null);        //2.设置自定义布局       toast.setView(view2);       //3.设置显示时长       toast.setDuration(Toast.LENGTH_LONG);       //4.显示吐司       toast.show();

二,常用的通知

通知 特殊
进度条 builder.setProgress(100,50,true);
自定义 builder.setContent(remoteViews);

1.普通通知

在这里插入图片描述

//普通通知    @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN)    private void normal_notification() {
//TODO 1:获得通知管理者:发送通知 取消通知 NotificationManager manager= (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); //TODO 2:创建构造者 Notification.Builder builder = new Notification.Builder(this); //TODO 3:设置属性 setSamllIcon该属性必须设置 builder.setSmallIcon(R.mipmap.ic_launcher);//设置小图标 builder.setContentTitle("我是标题"); builder.setContentText("我是内容"); //其他属性 builder.setTicker("我是提示信息"); builder.setContentInfo("我是附加信息"); //设置跳转其他页面 //1。创建意图对象 Intent intent= new Intent(this,OtherActivity.class); //2.Intent对象转成PendingIntent PendingIntent pendingIntent=PendingIntent.getActivity(this,100,intent,PendingIntent.FLAG_ONE_SHOT); //3。设置跳转 builder.setContentIntent(pendingIntent); //TODO 4:发送通知 //参数一 id 通知的id 参数二 通知对象 manager.notify(1,builder.build());

2.自定义通知

在这里插入图片描述

//自定义通知:builder.setContent(remoteViews);    @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN)    private void customer_notification() {
//TODO 1:获得通知管理者:发送通知 取消通知 NotificationManager manager= (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); //TODO 2:创建构造者 Notification.Builder builder = new Notification.Builder(this); //TODO 3:设置属性 setSamllIcon该属性必须设置 builder.setSmallIcon(R.mipmap.ic_launcher);//设置小图标 builder.setContentTitle("我是标题"); builder.setContentText("我是内容"); //TODO :设置自定义布局: RemoteViews remoteViews=new RemoteViews(getPackageName(),R.layout.layout_customer_notification); remoteViews.setTextViewText(R.id.customer_tv,"宋定行");//给文本设置文字 remoteViews.setImageViewResource(R.id.customer_image,R.drawable.ic_launcher_background);//给ImageView设置新的图片 builder.setContent(remoteViews); //TODO 4:发送通知 //参数一 id 通知的id 参数二 通知对象 manager.notify(2,builder.build()); }

3.进度条通知

在这里插入图片描述

//进度条通知:setProgress    @TargetApi(Build.VERSION_CODES.JELLY_BEAN)    private void progress_notification() {
//TODO 1:获得通知管理者:发送通知 取消通知 final NotificationManager manager= (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); //TODO 2:创建构造者 final Notification.Builder builder = new Notification.Builder(this); //TODO 3:设置属性 setSamllIcon该属性必须设置 builder.setSmallIcon(R.mipmap.ic_launcher);//设置小图标 builder.setContentTitle("我是标题"); //TODO 设置进度条 //参数一 最大值 参数二:当前进度 参数三 是否模糊 // builder.setProgress(100,50,true); final Timer timer=new Timer(); timer.schedule(new TimerTask() {
int progress; @Override public void run() {
//1.下载过程 builder.setContentText("正在下载,当前进度"+progress); builder.setProgress(100,progress,false);//确定的进度条 progress+=10; manager.notify(6,builder.build()); if(progress==100){
//2.安装过程 builder.setContentText("正在安装"); builder.setProgress(0,0,true);//安装模糊 manager.notify(6,builder.build()); try {
Thread.sleep(7000);//模拟安装过程 } catch (InterruptedException e) {
e.printStackTrace(); } //3.安装完成 manager.cancel(6);//取消置顶的通知 timer.cancel(); handler.sendEmptyMessage(12); } } }, 0, 1000);

三.安卓7.0直接回复通知

四.通知分组

五.锁屏通知

转载地址:http://uwktn.baihongyu.com/

你可能感兴趣的文章
区间和并问题 思路加模板整理(校门外的树)
查看>>
C++中next_permutation函数的使用方法、原理及手动实现
查看>>
网络流常用小技巧之 拆点
查看>>
最大权闭合子图
查看>>
最小权点覆盖集 与 最大权独立集
查看>>
POJ 2125 Destroying The Graph && Acwing 2325. 有向图破坏(拆点+最小权点覆盖集)
查看>>
计算几何基础知识整理大全 代码模板与证明过程 (直线、向量、多边形、三维计算几何、凸包、半平面交、最小圆覆盖)
查看>>
计算几何之 判断两线段是否相交 代码模板与证明
查看>>
三维计算几何之三维凸包 增量法
查看>>
MySQL变量,存储过程,函数,流程控制详解(小白都能懂哦)
查看>>
9篇小白都能懂系列博客学完MySQL基础
查看>>
还在为Linux入门发愁?
查看>>
如何优雅而又不失内涵的在centos7下安装tree命令
查看>>
彻底掌握Linux文件与目录管理命令?进来看看硬核总结
查看>>
一文搞定Vim/Vi编辑器
查看>>
剑指offer之斐波那契问题(C++/Java双重实现)
查看>>
Linux网络命令
查看>>
一天教会三岁表弟HTML,你值得拥有
查看>>
CSS基础汇总
查看>>
SpringCloud服务注册与发现
查看>>