Notification 及8.0不显示

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());

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值