Android 通知栏的使用方法

一、设置通知内容

	//CHANNEL_ID,渠道ID,Android 8.0及更高版本必须要设置
    NotificationCompat.Builder builder = new NotificationCompat.Builder(this, CHANNEL_ID)
    		//设置小图标
            .setSmallIcon(R.drawable.notification_icon)
            //设置标题
            .setContentTitle(textTitle)
            //设置内容
            .setContentText(textContent)
            //设置等级
            .setPriority(NotificationCompat.PRIORITY_DEFAULT);

二、创建渠道

在 Android 8.0 及更高版本上提供通知,需要在系统中注册应用的通知渠道。

    private void createNotificationChannel() {
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
            CharSequence name = getString(R.string.channel_name);
            String description = getString(R.string.channel_description);
            //不同的重要程度会影响通知显示的方式
            int importance = NotificationManager.IMPORTANCE_DEFAULT;
            NotificationChannel channel = new NotificationChannel(CHANNEL_ID, name, importance);
            channel.setDescription(description);

            NotificationManager notificationManager = getSystemService(NotificationManager.class);
            notificationManager.createNotificationChannel(channel);
        }
    }

上述代码应该在应用启动时立即执行,可以放在 Application 中进行初始化。

三、设置通知栏的点击操作

一般点击通知栏会打开对应的 Activity 界面,具体代码如下:

	//点击时想要打开的界面
    Intent intent = new Intent(this, AlertDetails.class);
    //一般点击通知都是打开独立的界面,为了避免添加到现有的activity栈中,可以设置下面的启动方式
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
    //创建activity类型的pendingIntent,还可以创建广播等其他组件
    PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent, 0);

    NotificationCompat.Builder builder = new NotificationCompat.Builder(this, CHANNEL_ID)
            .setSmallIcon(R.drawable.notification_icon)
            .setContentTitle("My notification")
            .setContentText("Hello World!")
            .setPriority(NotificationCompat.PRIORITY_DEFAULT)
            //设置pendingIntent
            .setContentIntent(pendingIntent)
            //设置点击后是否自动消失
            .setAutoCancel(true);

四、显示通知

    NotificationManagerCompat notificationManager = NotificationManagerCompat.from(this);
    //notificationId 相当于通知的唯一标识,用于更新或者移除通知
    notificationManager.notify(notificationId, builder.build());

还有很多特殊功能,可以直接查看官网教程进行设置。

以上就是Android 通知栏的使用方法的详细内容,更多关于Android 通知栏的使用的资料请关注我们其它相关文章!

(0)

相关推荐

  • Android Fragment实现底部通知栏

    Android Fragment实现底部通知栏,供大家参考,具体内容如下 截图如下: 1. 第一步先要创建fragment(动态注册) 然后将两个勾选取消掉(还有一种是自己手动创建) 会自动生成相对应的layout布局,剩下的要根据自己的需求了 2.在Activity的布局里写好四个按钮 这里不是重点- <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android=&quo

  • android实现常驻通知栏遇到的问题及解决办法

    实现常驻通知栏时遇到的问题: 无论如何就是不显示通知,查看日志发现貌似报错了: 2020-06-28 14:11:34.923 6387-6387/xxx E/CrashReport: android.app.RemoteServiceException: Bad notification posted from package xxx: Couldn't inflate contentViewsandroid.view.InflateException: Binary XML file lin

  • Android 8.0系统中通知栏的适配详解

    大家好,今天我们继续来学习Android 8.0系统的适配. 之前我们已经讲到了,Android 8.0系统最主要需要进行适配的地方有两处:应用图标和通知栏.在上一篇文章当中,我们学习了Android 8.0系统应用图标的适配,还没有看过这篇文章的朋友可以先去阅读 Android应用图标微技巧,8.0系统中应用图标的适配 . 那么本篇文章,我们自然要将重点放在通知栏上面了,学习一下Android 8.0系统的通知栏适配. 其实在8.0系统之前,还有一次通知栏变动比较大的版本,就是5.0系统.关于

  • Android开发实现判断通知栏是否打开及前往设置页面的方法

    本文实例讲述了Android开发实现判断通知栏是否打开及前往设置页面的方法.分享给大家供大家参考,具体如下: 项目中用到日程提醒功能,如果应用的通知栏没有打开,则需要提示用户前去打开通知栏,判断通知栏是否打开代码如下: private boolean isNotificationEnabled(Context context) { String CHECK_OP_NO_THROW = "checkOpNoThrow"; String OP_POST_NOTIFICATION = &qu

  • Android通知栏前台服务的实现

    一.前台服务的简单介绍 前台服务是那些被认为用户知道且在系统内存不足的时候不允许系统杀死的服务.前台服务必须给状态栏提供一个通知,它被放到正在运行(Ongoing)标题之下--这就意味着通知只有在这个服务被终止或从前台主动移除通知后才能被解除. 最常见的表现形式就是音乐播放服务,应用程序后台运行时,用户可以通过通知栏,知道当前播放内容,并进行暂停.继续.切歌等相关操作. 二.为什么使用前台服务 后台运行的Service系统优先级相对较低,当系统内存不足时,在后台运行的Service就有可能被回收

  • Android 8.0系统中通知栏的适配微技巧

    大家好,今天我们继续来学习Android 8.0系统的适配. 之前我们已经讲到了,Android 8.0系统最主要需要进行适配的地方有两处:应用图标和通知栏.在上一篇文章当中,我们学习了Android 8.0系统应用图标的适配,还没有看过这篇文章的朋友可以先去阅读 Android应用图标微技巧,8.0系统中应用图标的适配 . 那么本篇文章,我们自然要将重点放在通知栏上面了,学习一下Android 8.0系统的通知栏适配. 其实在8.0系统之前,还有一次通知栏变动比较大的版本,就是5.0系统.关于

  • 关于Android中点击通知栏的通知启动Activity问题解决

    前言 最近遇到一个很奇葩的问题,终于解决了,所以想着记录一下,方便大家或者自己以后有需要的时候可以参考学习. 问题场景 用小米手机使用小米推送一条消息,然后点击通知栏中的消息启动应用,然后进入会话的Activity.应用启动后,如果当前界面不是会话界面,那么新消息会在通知栏显示消息提醒,然后点击会话消息后却进不了会话的Activity,即点击了通知栏通知后,系统都没有启动指定Activity的意思,没有看到系统启动Activity的Log,到是会看到系统处理这个Activity的影子. 这个指定

  • Android 下载文件通知栏显示进度条功能的实例代码

    1.使用AsyncTask异步任务实现,调用publishProgress()方法刷新进度来实现(已优化) public class MyAsyncTask extends AsyncTask<String,Integer,Integer> { private Context context; private NotificationManager notificationManager; private NotificationCompat.Builder builder; public M

  • Android App自动更新之通知栏下载

    本文实例为大家分享了Android App自动更新通知栏下载的具体代码,供大家参考,具体内容如下 版本更新说明 这里有调用UpdateService启动服务检查下载安装包等 1. 文件下载,下完后写入到sdcard 2. 如何在通知栏上显示下载进度 3. 下载完毕自动安装 4. 如何判断是否有新版本 版本更新的主类 package com.wei.update; import java.io.IOException; import java.io.InputStream; import java

  • 适配Android 8.0版本更新安装与通知栏的一些坑

    前言 Android 8.0系统更新之后,app的更新将不再像之前的系统版本一样能够直接下载安装包之后直接安装(以前安装未知来源应用的时候一般会弹出一个弹窗让用户去设置允许还是拒绝,并且设置为允许之后,所有的未知来源的应用都可以被安装),8.0需要用户给予允许app安装未知来源应用的权限(比如你的app 名字为A,当你需要更新时,则需要使用app的用户 授权A这个app 允许安装未知来源的权限,才能完成正常的更新操作). Android8.0的变化是,未知应用安装权限的开关被除掉,取而代之的是未

随机推荐