Notification 最详细的讲解与极简案例



一、 每个项目都必须有这个,只有这个才能进行不同安卓不同版本的适配

 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
   

            NotificationChannel channel = new NotificationChannel(Chanel_ID, name, NotificationManager.IMPORTANCE_HIGH);
                                               //   可打可不打,随便
            channel.setDescription(description);
            channel.enableLights(false);        //是否在桌面icon右上角展示小红点
            channel.setLightColor(Color.GREEN); //小红点颜色
            channel.setShowBadge(true);         //是否在久按桌面图标时显示此渠道的通知
            NotificationManager notificationManager = getSystemService(NotificationManager.class);
            notificationManager.createNotificationChannel(channel);
            Log.e(TAG, "" );

        }
必须包含以下依赖
dependencies {
   

  implementation "com.android.support:support-compat:28.0.0"

 }





二、通知的每个部分

通知的设计由系统模板决定,您的应用只需定义模板各部分的内容。通知的某些详细信息仅在展开视图中显示。

在这里插入图片描述


展示了通知最常见的部分,具体如下所示:

  1. 小图标:此为必要图标,通过 setSmallIcon()设置。
  2. 应用名称:此由系统提供。
  3. 时间戳:此由系统提供,不过您可以通过setWhen() 进行替换,或使用 setShowWhen(false)]将其隐藏。 --------好像不怎么用
  4. 大图标:此为可选图标(通常仅用于联系人照片;请勿将其用于应用图标),通过setLargeIcon() 设置。
  5. 标题:此为可选内容,通过 setContentTitle() 设置。
  6. 文本:此为可选内容,通过 setContentText() 设置





三、安卓8之前的内容设置

private void tongzhi() {
   
    //通知栏的显示
    NotificationManager manager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);           //获取这个服务
    Notification notification = new NotificationCompat.Builder(getApplicationContext())        
            .setContentTitle("我是标题")            //设置标题
            .setContentText("我是内容")             //设置内容
            .setWhen(System.currentTimeMillis())   //设时间,获取当前时间
            .setSmallIcon(R.drawable.p2)           //设置小图标
            .setLargeIcon(BitmapFactory.decodeResource(getResources(), R.drawable.p1))                                                      //设置大图标
            .build();
    manager.notify(1, notification);
}

private void init() {
   
    button = findViewById(R.id.button);
    button.setOnClickListener(new View.OnClickListener() {
   
        @Override
        public void onClick(View view) {
   
            tongzhi();
        }
    });
}





四、通知的取消方法

1)、取消通知的 第一种方法
 .setAutoCancel(true) //设置为自动取消
2)、在跳转后的Activity中
NotificationManager manager = 
(NotificationManager)getSystemService(NOTIFICATION_SERVICE);

manager.cancel(1);

这里的cancle传入的是一个1,就是我们创建Notification中指定的通知的ID





五、通知的高级使用

1)、设置声音

(2)、设置振动

(3)、设置LED灯闪烁

(4)、进行默认效果设置

Notification notification = new NotificationCompat.Builder(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值