1.在服务中,发送通知的方法

  private void sendNotification(String title,String content,StateBean stateBean){Context context=getApplicationContext();String channelId = "通知消息";//和application通道的channedId名字要一样//设置TaskStackBuilder,点击通知栏跳转到指定页面,点击返回。返回到的页面
//        Intent returnIntent = new Intent(this, HomeActivity.class);
//        TaskStackBuilder stackBuilder = TaskStackBuilder.create(this);
//        stackBuilder.addParentStack(NotificationIntent.class);
//        stackBuilder.addNextIntent(returnIntent);//设置点击状态栏跳转的地方,详情页Intent intent = new Intent(context, DetailActivity.class);intent.putExtra("bean",stateBean);//解决PendingIntent的extra数据不准确问题//注意下面的最后一个参数用PendingIntent.FLAG_UPDATE_CURRENT,否则传参有问题PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);//通知管理类NotificationManager manager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);//设置通知属性,创建通知build,(创建channel通道已经在MApplication里面声明了)//使用默认的震动Notification notification = new NotificationCompat.Builder(context,channelId).setContentTitle(title)//设置标题.setContentText(content)//消息内容.setWhen(System.currentTimeMillis())//发送时间.setSmallIcon(R.mipmap.logo) //设置图标.setDefaults(Notification.DEFAULT_SOUND|Notification.DEFAULT_VIBRATE)//设置默认的提示音,振动方式,灯光.setContentIntent(pendingIntent)//传值跳转的内容.setAutoCancel(true)//点击通知时是否自动消失,需要重点注意的是,setAutoCancel需要和setContentIntent一起使用,否则无效。
//                .setLargeIcon(BitmapFactory.decodeResource(getResources(), R.mipmap.app_icon))
//                .setFullScreenIntent(pendingIntent,true)//悬挂式通知栏。但是在oppo8.0试了。通知会自动跳到intent的页面。网上说sdk设为29就没事了。android10.0测了不会自己跳转.build();notification.defaults = Notification.DEFAULT_ALL ;//设置为默认的声音//发送通知manager.notify(123, notification);}

2.要在MApplication中创建发送通知的通道

 /*** 创建通道*/private void createChannel(){NotificationManager  mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);// 通知渠道的idString channelId = "通知消息";// 用户可以看到的通知渠道的名字.CharSequence name = "通知消息的通道";// 用户可以看到的通知渠道的描述//        String description = getString(R.string.channel_description);int importance = NotificationManager.IMPORTANCE_HIGH;NotificationChannel channel = null;//Android8.0要求设置通知渠道if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) {channel = new NotificationChannel(channelId,name, NotificationManager.IMPORTANCE_HIGH);// 配置通知渠道的属性//        mChannel.setDescription(description);// 设置通知出现时的闪灯(如果 android 设备支持的话)channel.enableLights(true);channel.setLightColor(Color.RED);// 设置通知出现时的震动(如果 android 设备支持的话)channel.enableVibration(true);channel.setVibrationPattern(new long[]{100, 200, 300, 400, 500, 400, 300, 200, 400});channel.setLockscreenVisibility(Notification.VISIBILITY_PUBLIC);//最后在notificationmanager中创建该通知渠道mNotificationManager.createNotificationChannel(channel);}}

注:发送通知的ChannelId要和 MApplication创建的通道ChannelId 要一样

Android — 在服务中发送通知Notification相关推荐

  1. android辅助功能实现群发,Android 8.0实现发送通知的方法

    Android 8.0实现发送通知的方法 发布时间:2020-07-30 09:34:40 来源:亿速云 阅读:111 作者:小猪 这篇文章主要讲解了Android 8.0实现发送通知的方法,内容清晰 ...

  2. Android中的通知Notification

    1.获得系统服务 notificationmanager=(NotificationManager) context.getSystemService(NOTIFICATION_SERVICE); 2 ...

  3. android11通知栏按钮,android开发(11) 消息栏通知(Notification)

    android 的消息通知还是很方便的,它会出现在窗体的顶部,并给出提示.常见的短信就是这样的通知方式.本文我们尝试实现一个这样的演示. 演示截图: 实现步骤: 1.获得NotificationMan ...

  4. android 吐司服务中显示,android里的“吐司”

    方法一: setGravity(int gravity, int xOffset, int yOffset)三个参数分别表示(起点位置,水平向右位移,垂直向下位移)方法二: setMargin(flo ...

  5. Android发送通知——通知栏(Notification)

    Android发送通知--通知栏(Notification) 通知是指 Android 在您应用的界面之外显示的消息,旨在向用户提供提醒.来自他人的通信信息或您应用中的其他实时信息.在发出一条通知后, ...

  6. Android前台服务讲解二之自定义通知视图(RemoteViews)及数据UI更新

    Notification支持文字内容显示.震动.三色灯.铃声等多种提示形式,在默认情况下,Notification仅显示消息标题.消息内容.送达时间这3项内容. 1.更新系统通知Notificatio ...

  7. 在 Android* 商务应用中实施地图和地理围栏特性

    摘要 本案例研究讨论了如何将地图和地理定位特性构建到 Android* 商务应用中,包括在 Google Maps* 上覆盖商店位置,以及在设备进入商店地理围栏邻近区域时借助地理围栏通知用户. 目录 ...

  8. js 浏览器桌面通知notification

    Notification是HTML5新增的API,用于向用户配置和显示桌面通知.上次在别的网站上看到别人的通知弹窗,好奇之余也想知道如何实现的.实际去查一下发现并不复杂,且可以说比较简单,故写篇博客分 ...

  9. Notification使用详解之三:通过服务更新进度通知在Activity中监听服务进度

    为什么80%的码农都做不了架构师?>>>    上次我们讲到如何实现一个可更新的进度通知,实现的方式是启动一个线程模拟一个下载任务,然后根据任务进度向UI线程消息队列发送进度消息,U ...

最新文章

  1. 非对称卷积增强CNN特征拟合
  2. jQuery获取Text和Value
  3. .NET开发必看资料53个+经典源码77个
  4. 一年学遍吴恩达、李飞飞、周志华等16大精品课!(ML、CV、NLP一应俱全)
  5. 如何在ubuntu下安装detectron2_如何在 Debian/Ubuntu 上手动安装安全更新?
  6. 手写自己的MyBatis框架-支持查询缓存
  7. 计算机控制cs,计算机控制
  8. RaabitMQ:rabbitmqctl的几个命令
  9. Mr.J--Bootstrap使用
  10. (200)FPGA芯片选择原则
  11. SolrCloud Hello Word
  12. 无法打开ONEDRIVE的解决方法【等待验证】
  13. 迅雷服务器有多少硬盘,迅雷真的比BT还伤硬盘吗?
  14. Get busy living--or get busy dying
  15. java判断是否微信浏览器_Java判断浏览器是微信还是支付宝
  16. python django ORM 简单的增删改查案例记录
  17. C语言-英文字母倒序转换
  18. 什么是数字“指纹”?
  19. 【云周刊】第209期:Perseus(擎天):统一深度学习分布式通信框架 [弹性人工智能]...
  20. spreadsheet属性方法事件

热门文章

  1. e3是合法浮点数吗_下面四个选项中,均是不合法的浮点数的选项是
  2. 合合信息获中国图象图形学学会科技进步奖二等奖
  3. 这款远程桌面软件开源了
  4. Istio Ambient Mesh 介绍
  5. Splinter+pyautogui爬取淘宝小米10评论
  6. 基于tornado实现web camera
  7. OpenGL ES EGL eglDestroySurface
  8. CSS中雪碧图CSS-Sprite的使用,解决图片闪烁问题
  9. 微信公众号发送消息通知
  10. 支持向量机(SVM)之核函数