必威体育Betway必威体育官网
当前位置:首页 > IT技术

Notification 及8.0不显示

时间:2019-07-20 16:11:03来源:IT技术作者:seo实验室小编阅读:76次「手机版」
 

notification

1、notification的必要的三个方法

  1. 图标,通过 setSmallIcon() 方法设置
  2. 标题,通过 setcontenttitle() 方法设置
  3. 内容,通过 setContentText() 方法设置

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中文版下载(支持windows和Mac)

期待已久的Axure 8.0已经发布,今天小编妹妹收集了MAC/windows版下载地址给大家,产品汪/设计湿/交互喵….赶紧围观过来。Axure

tomcat 8.0下载

tomcat 8.5下载 官网:https://tomcat.apache.org/download-80.cgi选择合适版本下载解压启动,直接双击startup.bat或者在cmd中运行启

UBUNTU18.04系统安装打印机

1. 前言 自从实验室电脑换成ubuntu系统之后越来越是爱不释手,现在几乎每天都使用ubuntu系统,基本废弃了windows,但是还是没有完全摆

将英文版的Ubuntu 18.04系统改为中文

很多朋友安装Ubuntu后是英文的,看不懂要怎么办?其实Ubuntu是可以设置成中文的,按照以下方法一步步设置就可以了。首先,更新镜像配置,请

AD18.0.9正式版下载与破解

近日已经可以下载AD18.0.9正式版了,正式版自然会比测试版稳定许多,也修复了不少Bug。给这个文章起个名,就叫EDA设计工具安装——工欲

分享到:

栏目导航

推荐阅读

热门阅读