双击和Notification通知

一:双击退出

实现的基本原理就是,当按下BACK键时,会被onKeyDown捕获,判断是BACK键,则执行exit方法。

判断用户两次按键的时间差是否在一个预期值之内,是的话直接直接退出,不是的话提示用户再按一次后退键退出。
代码

public class MainActivity extends AppCompatActivity {

    private long firstTime = 0;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_DOWN){
            //判断用户两次按键的时间差是否在一个预期值之内,是的话直接直接退出,不是的话提示用户再按一次后退键退出。
            if (System.currentTimeMillis() - firstTime>2000){
                Toast.makeText(this, "再按一次退出程序", Toast.LENGTH_SHORT).show();
                firstTime = System.currentTimeMillis();
                return  true;
            }
        }else{
            finish();//结束当前Activity
        }
        return super.onKeyDown(keyCode, event);
    }

二:常用的通知

定义:是在系统的通知栏中呈现多样式持久性消息的类

1、在通知栏显示

2、消息持久性

3、种类多样性
用处:

显示客户端的推送消息(如有新版本发布、广告、推荐新闻等)

显示正在进行的事物(如音乐播放器、版本更新时候的下载进度等)

显示接收到短消息,即时消息等信息(如QQ、微信、新浪、短信)
常用方法:

在这里插入图片描述

setSmallIcon() 与 setLargeIcon()

当 setSmallIcon() 与 setLargeIcon() 同时存在时, smallIcon 显示在通知的右下角, largeIcon 显示在左侧;当只设置 setSmallIcon() 时, smallIcon 显示在左侧。
在这里插入图片描述

1.普通通知

//发送一个最简单的通知(无交互)
    public void Notification(View view) {
        //创建构造者
        Notification.Builder builder = new Notification.Builder(this);
        builder.setSmallIcon(R.mipmap.ic_launcher);//必须设置
        builder.setContentTitle("这是标题");//建议设置
        builder.setContentText("这是内容");//建议设置

//        builder.setTicker("提示信息");
//        builder.setContentInfo("附加信息");//7.0以后过期

        //创建对象.发送的就是这个对象
        Notification build = builder.build();
        //获取通知管理器,负责发通知、清除通知等
        NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
        notificationManager.notify(1,build);
    }

2.自定义通知

其实就是加载一个布局. 加载布局用到了 RemoteViews 代码中有详细注释.

在这里插入图片描述

//自定义通知
public void customNotification(View view) {
    NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
    //创建构造者
    Notification.Builder builder = new Notification.Builder(this);
    //设置属性
    builder.setSmallIcon(R.mipmap.ic_launcher);
    builder.setContentTitle("这是标题");
    builder.setContentText("这是内容");
    /**
     * RemoteViews是可以在别的进程(系统进程)中显示
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值