Android — 在服务中发送通知Notification
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相关推荐
- android辅助功能实现群发,Android 8.0实现发送通知的方法
Android 8.0实现发送通知的方法 发布时间:2020-07-30 09:34:40 来源:亿速云 阅读:111 作者:小猪 这篇文章主要讲解了Android 8.0实现发送通知的方法,内容清晰 ...
- Android中的通知Notification
1.获得系统服务 notificationmanager=(NotificationManager) context.getSystemService(NOTIFICATION_SERVICE); 2 ...
- android11通知栏按钮,android开发(11) 消息栏通知(Notification)
android 的消息通知还是很方便的,它会出现在窗体的顶部,并给出提示.常见的短信就是这样的通知方式.本文我们尝试实现一个这样的演示. 演示截图: 实现步骤: 1.获得NotificationMan ...
- android 吐司服务中显示,android里的“吐司”
方法一: setGravity(int gravity, int xOffset, int yOffset)三个参数分别表示(起点位置,水平向右位移,垂直向下位移)方法二: setMargin(flo ...
- Android发送通知——通知栏(Notification)
Android发送通知--通知栏(Notification) 通知是指 Android 在您应用的界面之外显示的消息,旨在向用户提供提醒.来自他人的通信信息或您应用中的其他实时信息.在发出一条通知后, ...
- Android前台服务讲解二之自定义通知视图(RemoteViews)及数据UI更新
Notification支持文字内容显示.震动.三色灯.铃声等多种提示形式,在默认情况下,Notification仅显示消息标题.消息内容.送达时间这3项内容. 1.更新系统通知Notificatio ...
- 在 Android* 商务应用中实施地图和地理围栏特性
摘要 本案例研究讨论了如何将地图和地理定位特性构建到 Android* 商务应用中,包括在 Google Maps* 上覆盖商店位置,以及在设备进入商店地理围栏邻近区域时借助地理围栏通知用户. 目录 ...
- js 浏览器桌面通知notification
Notification是HTML5新增的API,用于向用户配置和显示桌面通知.上次在别的网站上看到别人的通知弹窗,好奇之余也想知道如何实现的.实际去查一下发现并不复杂,且可以说比较简单,故写篇博客分 ...
- Notification使用详解之三:通过服务更新进度通知在Activity中监听服务进度
为什么80%的码农都做不了架构师?>>> 上次我们讲到如何实现一个可更新的进度通知,实现的方式是启动一个线程模拟一个下载任务,然后根据任务进度向UI线程消息队列发送进度消息,U ...
最新文章
- 非对称卷积增强CNN特征拟合
- jQuery获取Text和Value
- .NET开发必看资料53个+经典源码77个
- 一年学遍吴恩达、李飞飞、周志华等16大精品课!(ML、CV、NLP一应俱全)
- 如何在ubuntu下安装detectron2_如何在 Debian/Ubuntu 上手动安装安全更新?
- 手写自己的MyBatis框架-支持查询缓存
- 计算机控制cs,计算机控制
- RaabitMQ:rabbitmqctl的几个命令
- Mr.J--Bootstrap使用
- (200)FPGA芯片选择原则
- SolrCloud Hello Word
- 无法打开ONEDRIVE的解决方法【等待验证】
- 迅雷服务器有多少硬盘,迅雷真的比BT还伤硬盘吗?
- Get busy living--or get busy dying
- java判断是否微信浏览器_Java判断浏览器是微信还是支付宝
- python django ORM 简单的增删改查案例记录
- C语言-英文字母倒序转换
- 什么是数字“指纹”?
- 【云周刊】第209期:Perseus(擎天):统一深度学习分布式通信框架 [弹性人工智能]...
- spreadsheet属性方法事件