notification
1、notification的必要的三个方法
2、Notification的通常使用
NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); // notification跳转的意图 intent intent = new Intent(context, MainActivity.class); intent.putExtra("currentIndex" , 2); PendingIntent pendingIntent = PendingIntent.getActivity(context , 1 , intent , PendingIntent.FLAG_UPDATE_CURRENT); Notification.builder builder = new Notification.Builder(context) .setSmallIcon(R.drawable.icon_mine_manage) .setLargeIcon(BitmapFactory.decodeResource(getresources() ,R.drawable.ic_login_logo)) .setContentTitle("我是标题") .setContentText("this is content are you readly??") .setAutoCancel(true)//点击后消失 .setContentInfo("我是信息---")//显示在右下角的文字 8.0不显示 未解决 .setSubText("subtext")//显示在小图标后面的文字(不知道怎么更改前面的myAPPilcation) .setprogress(100 , 10 , false)//设置进度条 最后一个参数 true动态显示 false 静态显示 .setContentIntent(pendingIntent)//设置notification的点击跳转 详解可看2.1 .setOngoing(true)//禁止删除 .setWhen(system.currenttimemillis());//设置时间 (8.0不显示 未解决)
notificationManager.notify(1 , builder.build());//发送
2.1 notification跳转的意图
-
FLAG_CANCEL_CURRENT:如果当前系统中已经存在一个相同的 PendingIntent 对象,那么就将先将已有的 PendingIntent 取消,然后重新生成一个 PendingIntent 对象。
-
FLAG_NO_CREATE:如果当前系统中不存在相同的 PendingIntent 对象,系统将不会创建该 PendingIntent 对象而是直接返回 null 。
-
FLAG_ONE_SHOT:该 PendingIntent 只作用一次。
-
FLAG_UPDATE_CURRENT:如果系统中已存在该 PendingIntent 对象,那么系统将保留该 PendingIntent 对象,但是会使用新的 Intent 来更新之前 PendingIntent 中的 Intent 对象数据,例如更新 Intent 中的 Extras 。
传递intent参数时一般使用 FLAG_UPDATE_CURRENT 否则可能接收不到传递的数据
在打开一个activity时 如果activity的lacuMode=singleTask 参数在OnNewIntent中接收
2.2 8.0时不显示notification
添加渠道 id和name可以自己设定
完整代码
NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); Intent intent = new Intent(context, MainActivity.class); intent.putExtra("currentIndex" , 2); PendingIntent pendingIntent = PendingIntent.getActivity(context , 1 , intent , PendingIntent.FLAG_UPDATE_CURRENT); Notification.Builder builder = new Notification.Builder(context) .setSmallIcon(R.drawable.icon_mine_manage) .setLargeIcon(BitmapFactory.decodeResource(getResources() ,R.drawable.ic_login_logo)) .setContentTitle("我是标题") .setContentText("this is content are you readly") .setAutoCancel(true) .setContentInfo("我是信息---") .setSubText("subtext") .setProgress(100 , 10 , false) .setContentIntent(pendingIntent) .setOngoing(true) .setWhen(System.currentTimeMillis()); if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.O){ NotificationChannel channel = new NotificationChannel("1", "mine", NotificationManager.IMPORTANCE_DEFAULT); notificationManager.createNotificationChannel(channel); builder.setChannelId("1"); } notificationManager.notify(1 , builder.build());
相关阅读
期待已久的Axure 8.0已经发布,今天小编妹妹收集了MAC/windows版下载地址给大家,产品汪/设计湿/交互喵….赶紧围观过来。Axure
tomcat 8.5下载 官网:https://tomcat.apache.org/download-80.cgi选择合适版本下载解压启动,直接双击startup.bat或者在cmd中运行启
1. 前言 自从实验室电脑换成ubuntu系统之后越来越是爱不释手,现在几乎每天都使用ubuntu系统,基本废弃了windows,但是还是没有完全摆
很多朋友安装Ubuntu后是英文的,看不懂要怎么办?其实Ubuntu是可以设置成中文的,按照以下方法一步步设置就可以了。首先,更新镜像配置,请
近日已经可以下载AD18.0.9正式版了,正式版自然会比测试版稳定许多,也修复了不少Bug。给这个文章起个名,就叫EDA设计工具安装——工欲