Android 8.0 系统及其以上版本创建最基本的Notification

Android 8.0版本Notification有了重大改变,如果像《第一行代码》中写的一样,肯定是不行的,如:


NotificationManager notificationManager = (NotificationManager)getSystemService(NOTIFICATION_SERVICE); 
                Notification notifiction = new NotificationCompat.Builder(this)
                        .setContentTitle("This is a title")
                        .setContentText("This is a text")
                        .setWhen(System.currentTimeMillis())
                        .setSmallIcon(R.mipmap.ic_launcher)
                        .build();
                notificationmanager.notify(1,notification);

Android O 版本新机制:

官方文档:

NotificationCompat.Builder的构造方法需要一个channelID,Android O版本及其以上必须有,低版本就可以忽略了。 

NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this, CHANNEL_ID)
        .setSmallIcon(R.drawable.notification_icon)
        .setContentTitle(textTitle)
        .setContentText(textContent)
        .setPriority(NotificationCompat.PRIORITY_DEFAULT);

 创建channel:

String CHANNEL_ID = "my_channel_01";
                if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
                    CharSequence name = "my_channel_name";
                    String description = "my_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);
                    Notification notification = new NotificationCompat.Builder(getApplicationContext(),CHANNEL_ID)
                            .setContentTitle("This is content title")
                            .setContentText("This is content text")
                            .setWhen(System.currentTimeMillis())
                            .setSmallIcon(R.mipmap.ic_launcher)
                            .setLargeIcon(BitmapFactory.decodeResource(getResources(),R.mipmap.ic_launcher))
                            .build();
                    notificationManager.notify(1,notification);
                }

设置一个CHANNEL_ID,然后进行版本控制,定义name,description,使用Notification的构造方法,创建一个NotificationChannel实例,然后调用createNotifiationChannel方法,在最后创建notification时别忘记CHANNEL_ID

。这样创建一个最基本的通知基于完成了。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值