-
-
Notifications
You must be signed in to change notification settings - Fork 133
通知工具使用
xuexiangjys edited this page Aug 27, 2019
·
1 revision
话说自从Android6.0开始,代代版本修改消息通知栏的API,前两年可能还是好好的方法,可能没过多久就变成了过时的方法...看到那么多错综复杂的api以及过时的方法,顿时感觉发一个通知好心累,有木有?
为了解决这一问题,我特地写了一个工具类供大家使用,非常方便,还支持自定义API哦。下面我给出对应的代码示例:
使用NotificationUtils的buildSimple
方法构建。
NotificationUtils.buildSimple(1000, R.mipmap.ic_launcher, "我是通知的标题", "我是通知的内容", null)
.setHeadUp(true)
.addAction(R.mipmap.ic_launcher, "确定", PendingIntentUtils.buildBroadcastIntent(NotifyBroadCastReceiver.class, NotifyBroadCastReceiver.ACTION_SUBMIT, 0))
.addAction(R.mipmap.ic_launcher, "取消", PendingIntentUtils.buildBroadcastIntent(NotifyBroadCastReceiver.class, NotifyBroadCastReceiver.ACTION_CANCEL, 0))
.setVisibility(NotificationCompat.VISIBILITY_PUBLIC)
.setIsPolling(true)
.show();
使用NotificationUtils的buildBigPic
方法构建。
Map<String, Object> params = new HashMap<>();
params.put(KEY_PARAM_STRING, "我是参数1");
params.put(KEY_PARAM_INT, 123);
NotificationUtils.buildBigPic(1001, R.mipmap.ic_launcher, "我是通知的标题", "我是图片的概要信息")
.setPicRes(R.mipmap.timg2)
.setContentIntent(PendingIntentUtils.buildActivityIntent(TestActivity.class, params))
.show();
使用NotificationUtils的buildBigText
方法构建。
NotificationUtils.buildBigText(1002, R.mipmap.ic_launcher, "我是通知的标题", ResourceUtils.getFileFromRaw(R.raw.test))
.show();
使用NotificationUtils的buildMailBox
方法构建。
NotificationUtils.buildMailBox(1003, R.mipmap.ic_launcher, "我是通知的标题")
.addMsg("11111111111")
.addMsg("22222222222")
.addMsg("33333333333")
.setForegroundService()
.show();
使用NotificationUtils的buildProgress
方法构建。
NotificationUtils.buildProgress(1004, R.mipmap.ic_launcher, "正在下载", 100, progresses).show();
使用NotificationUtils的buildProgress
方法构建。
NotificationUtils.buildProgress(1005, R.mipmap.ic_launcher, "正在下载").show();
使用NotificationUtils的buildCustomView
方法构建。
NotificationUtils.buildCustomView(1006, R.mipmap.ic_launcher, "自定义通知", getActivity().getPackageName(), R.layout.layout_notification_custom_view)
.setImageViewResource(R.id.iv_icon, R.mipmap.ic_launcher)
.setTextViewText(R.id.tv_title, "我是自定义通知的标题")
.setTextViewText(R.id.tv_content, "我是自定义通知的内容")
.setOnClickPendingIntent(R.id.btn_reply, PendingIntentUtils.buildBroadcastIntent(NotifyBroadCastReceiver.class, NotifyBroadCastReceiver.ACTION_REPLY, 0))
.show();
方法名 | 作用 |
---|---|
setId | 设置通知的ID |
setChannelId | 设置渠道ID号 |
setChannelName | 设置渠道名称 |
setSmallIcon | 设置顶部状态栏的小图标 |
setContentTitle | 设置通知中心的标题 |
setContentText | 设置通知中心中的内容 |
setSummaryText | 设置通知的概要内容 |
addAction | 增加按钮点击 |
setContentIntent | 设置通知点击事件 |
setDeleteIntent | 设置通知删除事件 |
setFullScreenIntent | 设置通知全屏事件 |
setTicker | 设置顶部状态栏中的提示信息 |
setWhen | 设置通知的时间 |
setBigIcon | 设置大图标 |
setIsShowWhen | 设置是否显示通知时间 |
setDisplayForm | 设置表现形式(是否有声音、振动、闪烁) |
setSoundUri | 设置声音的资源地址 |
setVibratePatten | 设置通知振动 |
setIsOnGoing | 设置通知是否不可侧滑删除 |
setForegroundService | 设置是否显示是前台服务的通知 |
setVisibility | 设置通知的可见度 |
setStyle | 设置通知的拓展样式 |
setIsPolling | 设置是否一直提示 |
setHeadUp | 设置通知顶端弹出 |
setPriority | 设置推送优先级 |