本网站(662p.com)打包出售,且带程序代码数据,662p.com域名,程序内核采用TP框架开发,需要联系扣扣:2360248666 /wx:lianweikj
精品域名一口价出售:1y1m.com(350元) ,6b7b.com(400元) , 5k5j.com(380元) , yayj.com(1800元), jiongzhun.com(1000元) , niuzen.com(2800元) , zennei.com(5000元)
需要联系扣扣:2360248666 /wx:lianweikj
Android 通知栏的使用方法
吴振华 · 304浏览 · 发布于2021-06-09 +关注

不同版本通知栏的创建方式不尽相同,当前官方推荐使用 NotificationCompat 相关的API,兼容到Android 4.0,但是部分新功能,比如内嵌回复操作,旧版本是无法支持的。

目录

  • 一、设置通知内容

  • 二、创建渠道

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

  • 四、显示通知

 

一、设置通知内容

1

2

3

4

5

6

7

8

9

10

//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 及更高版本上提供通知,需要在系统中注册应用的通知渠道。

1

2

3

4

5

6

7

8

9

10

11

12

13

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 界面,具体代码如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

//点击时想要打开的界面

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);   

 

四、显示通知

1

2

3

NotificationManagerCompat notificationManager = NotificationManagerCompat.from(this);

//notificationId 相当于通知的唯一标识,用于更新或者移除通知

notificationManager.notify(notificationId, builder.build());

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


相关推荐

android下vulkan与opengles纹理互通

talkchan · 1175浏览 · 2020-11-23 10:37:39
Android 使用RecyclerView实现轮播图

奔跑的男人 · 2175浏览 · 2019-05-09 17:11:13
微软发布新命令行工具 Windows Terminal

吴振华 · 869浏览 · 2019-05-09 17:15:04
Facebook 停止屏蔽部分区块链广告

· 754浏览 · 2019-05-09 17:20:08
加载中

0评论

评论
坐标是江苏.南京,行业是互联网,技术是PHP和java,还有熟悉前后端等。
分类专栏
小鸟云服务器
扫码进入手机网页