Android_Notification通知栏与返回键退出

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

在这里插入图片描述

自定义通知栏

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

    //创建一个构造者
    Notification.Builder builder = new Notification.Builder(this);
    //设置标题
    builder.setContentTitle("标题");
    //内容
    builder.setContentText("内容");
    //时间
    builder.setWhen(System.currentTimeMillis());
    //必须设置的小图标
    builder.setSmallIcon(R.mipmap.ic_launcher);

    //创建发送的对象
    Notification build = builder.build();
    //获取通知管理器,负责发通知、清除通知等 需要强转
    NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
    //发送
    /**
     * 第一个参数是发送的系统通知的位置,改变数字多发送几个自己试试看
     * 第二个是发送的对象
     */
    notificationManager.notify(1,build);
}

在这里插入图片描述

具有交互的通知

PendingIntent
PendingIntent 是一种特殊的 Intent ,字面意思可以解释为延迟的 Intent ,用于在某个事件结束后执行特定的 Action 。从上面带 Action 的通知也能验证这一点,当用户点击通知时,才会执行。
package com.example.day3_lx;

import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;

import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.view.KeyEvent;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

import java.util.Timer;
import java.util.TimerTask;

public class MainActivity extends AppCompatActivity {

    private  long exittime;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //设成全局 好操作
        final NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
        //创建一个构造者
        final Notification.Builder builder = new Notification.Builder(this);
        //设置图片
        builder.setSmallIcon(R.mipmap.ic_launcher);
        builder.setContentTitle("这是弹出的通知标题");
        builder.setContentText("这是弹出的信息内容");

        //弹出设置
        builder.setDefaults(Notification.DEFAULT_ALL);
        builder.setPriority(Notification.PRIORITY_MAX);

        //交互式跳转
        Intent intent = new Intent(this,MainActivity2.class);
        PendingIntent activity = PendingIntent.getActivity(this, 0, intent, 0);

        //设置意图对象
        builder.setContentIntent(activity);

        //创建发送的对象
        Notification build = builder.build();
        //获取通知管理器,负责发通知、清除通知等 需要强转

        //发送
        /**
         * 第一个参数是发送的系统通知的位置,改变数字多发送几个自己试试看
         * 第二个是发送的对象
         */
        notificationManager.notify(1,build);
    }
    
}
呼吸灯,震动,弹出
添加两个属性就可以,其余跟上个自定义的消息一样

在这里插入图片描述
在这里插入图片描述

进度条通知栏

package com.example.day3_lx;

import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;

import android.app.Notification;
import android.app.NotificationManager;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.view.View;
import android.widget.Button;

import java.util.Timer;
import java.util.TimerTask;

public class MainActivity extends AppCompatActivity {


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //设成全局 好操作
        final NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
        //创建一个构造者
        final Notification.Builder builder = new Notification.Builder(this);
        //设置图片
        builder.setSmallIcon(R.mipmap.ic_launcher);


         //创建个计时器
        final Timer timer = new Timer();
        timer.schedule(new TimerTask() {
            int k=0;
            @Override
            public void run() {
                //创建进度条
                builder.setProgress(100, k, false);
                k=k+20;
                //实时更新
                notificationManager.notify(1,builder.build());
                if(k==100){
                   //设置当前状态
                    builder.setContentTitle("正在安装");
                    builder.setProgress(0,0,true);
                    notificationManager.notify(1,builder.build());
                    try {
                        Thread.sleep(5000);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                    //安装完关闭
                    notificationManager.cancel(1);
                    timer.cancel();
                }
            }
            //第一个参数是延迟,第二个参数是多久执行一次
        },0,1000);

        //创建发送的对象
        Notification build = builder.build();
        //获取通知管理器,负责发通知、清除通知等 需要强转

        //发送
        /**
         * 第一个参数是发送的系统通知的位置,改变数字多发送几个自己试试看
         * 第二个是发送的对象
         */
        notificationManager.notify(1,build);
    }
}

在这里插入图片描述

双击返回键退出

模拟器的返回键 双击两次退出程序
@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();
            //返回为true 表示为处理完此事务
            return true;
        }else {
            //关闭
            finish();
        }

    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: Android通知是一种用于显示应用程序通知的用户界面元素。它可以在屏幕的顶部或底部显示,并且可以包含文本、图像、声音和其他交互元素。通知可以帮助用户及时了解应用程序的状态和事件,例如新消息、更新、提醒和警告等。开发人员可以使用Android SDK提供的通知API来创建和管理通知,以便更好地与用户进行交互。 ### 回答2: Android 通知是一种提供给用户显示有关当前状态和行动的信息的方式,以便用户可以及时地采取必要的行动。通知可以显示来自应用程序和系统的通知消息,例如电子邮件、信息和其他事件,可以让用户在不离开当前应用的情况下对这些消息进行响应。 在通知中,每个通知都包含一个图标、标题、简短的消息文本和通知时间。用户可以从通知中直接打开应用程序或查看通知的详细信息。通知还可以显示多个通知,按照时间顺序进行排序。 开发人员可以使用 Android SDK 提供的 Notification 类来创建自定义通知。可以设置通知的图标、文本、声音、震动和延迟时间等属性。还可以指定通知的优先级,以便系统在有限的屏幕空间中为用户先显示最重要的通知通知还可以与 PendingIntent 实例相关联,以便在用户单击通知时执行特定的操作,例如打开应用程序,启动活动或显示通知详细信息的专用活动。 总之,Android 通知是一种非常有用的功能,可以让用户及时了解应用程序和系统中的重要事件,并采取及时的行动。开发人员可以使用通知来实现更好的用户体验。 ### 回答3: Android 通知是一种非常有用的功能,它可以让你的应用程序以一种全新的方式与用户进行交互。在 Android 应用程序中,通知是一种特殊的 UI 元素,它显示在屏幕的顶部,并显示当前状态、事件或提示。通知通常包含一组小图标,可以展开或折叠以显示更多详细信息。 Android 通知有许多不同的用途,例如提醒用户新的消息、电子邮件、电话、提醒等等。发送通知的应用程序无需与用户保持连接,这使得通知非常适合后台服务或其他形式的低功耗通信。通知还允许用户直接从通知菜单中操作应用程序。例如,当用户收到新的电子邮件时,他们可以在通知中选择该电子邮件并立即查看其内容,而无需打开电子邮件应用程序。 Android 通知的另一个优点是它的可定制性。可以轻松地修改通知的外观、行为和内容,以满足不同应用程序的需求和设计要求。您可以为通知添加各种元素,如纯文本、小图标、大图标、进度指示器、按钮等等。这样,您可以轻松地创造与您的品牌和应用程序设计语言保持一致的通知。 在实现通知之前,您需要确保该应用程序已获得了通知权限。如果您的应用程序需要通知用户任何内容,则必须获得 Android 手机上的通知权限。可以在应用程序设置中找到此选项。 虽然 Android 通知很有用,但在某些情况下,它们可能会变得令人分心。因此,应该仔细考虑应用程序通知的数量和类型,以确保用户不会感到困扰。通知还可以消耗设备电池,因此也应考虑优化应用程序以最小化资源消耗。 Android 通知作为 Android 应用程序非常重要的一部分,可以帮助您在应用程序和用户之间建立更紧密的联系,并提供有关应用程序状态、事件和提示的有用信息。通过努力优化您的应用程序通知,您可以确保用户感到受到了关注,并且同时不会让他们感到困扰。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值