Skip to content

通知工具使用

xuexiangjys edited this page Aug 27, 2019 · 1 revision

NotificationUtils

话说自从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 设置推送优先级