Android Notification通知栏、点击事件、悬浮通知的简单实现

  • Post author:
  • Post category:其他




Notification的三要素

1.小图标 .setSmallIcon()

2.标题 .setContentTitle()

3.内容 .setContentText()

这是一个通知栏的 三要素 有了三要素你的通知栏才能显示出来



一些常用的方法
方法 效果
.setSmallIcon() 小图标
.setContentTitle() 标题
.setContentText() 内容
.setDefaults(Notification.DEFAULT_ALL); 提醒方式(ALL代表 声音 振动 提示灯兼备)
.setLargeIcon() 大图标
.setContentIntent() 点击跳转
.setWhen() 通知时间(何时通知)
.setAutoCancel(boolean) 点击后是否关闭通知
.setPriority(Notification.PRIORITY_MAX) 通知的优先级(MAX表示最高级)


API15以及以下的使用需要注意

1 .java代码中最后那条 .build()方法需要换成.getNotification()

如下: notificationManager.notify(0, builder.getNotification());

2. .setPriority() 方法不可用



接下来是完整的实现

java文件中

NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
Notification.Builder builder = new Notification.Builder(context);
builder.setContentTitle("危险警报!!!")
                        .setContentText("您的手机已经被病毒入侵,点击紧急杀毒")
                        .setSmallIcon(R.mipmap.jiaojing)
  notificationManager.notify(0, builder.build()); //API15以及以下需要把.build()方法需要换成.getNotification()          


Notification的点击事件

java代码如下

只需要实例化一个PendingIntent 利用 .setContentIntent()方法实现

 Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://www.baidu.com/"));
 PendingIntent  pi = PendingIntent.getActivity(context, 0, intent, 0);
 NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
 Notification.Builder builder = new Notification.Builder(TongZhiActivity.this);
                builder.setContentTitle("标题")
                        .setContentText("内容(点击跳转至百度)")
                        .setSmallIcon(R.mipmap.jiaojing)
                        .setContentIntent(pi)    
                        .setAutoCancel(true)    //点击后关闭通知
                        .setWhen(System.currentTimeMillis()) ;
                notificationManager.notify(1, builder.build());


Notification悬浮通知
 Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://www.baidu.com/"));
 PendingIntent  pi = PendingIntent.getActivity(context, 0, intent, 0);
 NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
 Notification.Builder builder = new Notification.Builder(TongZhiActivity.this);
                builder.setContentTitle("悬浮")
                        .setContentText("悬浮通知")
                        .setSmallIcon(R.mipmap.jiaojing)
                        .setContentIntent(pi)
                        .setAutoCancel(true)    //点击后关闭通知
                        .setWhen(System.currentTimeMillis())
                        .setDefaults(Notification.DEFAULT_ALL)
                        .setPriority(Notification.PRIORITY_MAX)
                        .setFullScreenIntent(pi, true);
                notificationManager.notify(3, builder.build());



版权声明:本文为qq_44720366原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。