QuickNotify使用详解-快速发送通知、桌面快捷方式(兼容Android 8.0)

QuickNotify是什么东西呢,顾名思义就是快速发送通知、桌面快捷方式。

那此组件有什么特点:

不需要传入Context,配置灵活,兼容安卓8.0,并且以回调的方式接收返回消息,无需自己定义广播接收

接下来我们看一下正常写法:

。。。发现正常写法太长了,兼容难做,如果把代码贴出来估计得快2屏了,这里就不贴了。

所以直接看下QuickNotify的写法

1、发送普通通知

QuickNotify.notifyTempNormal(R.mipmap.ic_launcher2,"这是标题","这是内容")

1.1、发送普通通知-需要点击事件的

QuickNotify.notifyTempNormal(R.mipmap.ic_launcher2,"这是标题","这是内容", Intent()) { context, intent ->

}

非常简单,只需要添加intent与回调即可

一般下载文件时,需要用到进度通知

2.1、发送进度通知-准备阶段

QuickNotify.notifyTempProgress(1,R.mipmap.ic_launcher2,"这是标题","这是内容")

2.2、发送进度通知-发送阶段

QuickNotify.notifyTempProgresses(1, R.mipmap.ic_launcher, "这是标题", "这是内容", value)

2.2、发送进度通知-发送完成

QuickNotify.notifyTempProgressEnd(1, R.mipmap.ic_launcher, "这是标题", "这是内容", Intent()) { context, intent ->
          QuickToast.showToastDefault("点击了")
}

以上组件封装的常见的两种使用方式。

更复杂的通知就需要自定义了,调用notify方法即可

/**
     * 自定义通知-不接管任何事件
     *
     * 注意:如果需要使用自带的点击回调,请将在intent的action指定为{@link #action }例如:Intent(QuickNotify.action)
     * 并且将通知ID添加进intent{@link #actionNotificationId},例如:intentCancel.putExtra(actionNotificationId, notificationId)
     *
     * 这里提供一个自定义通知View的写法
     * for example:
     * 1、先实例一个RemoteViews
     * val customLayout = RemoteViews(packageName, R.layout.app_download_notification)
     *     customLayout.setTextViewText(R.id.titleTv, model.title)
     *     customLayout.setImageViewResource(R.id.coverIv, model.cover)
     *     customLayout.setOnClickPendingIntent(R.id.downloadStatusContainer, pendingIntentCancel)
     * 2、将实例好的RemoteViews安装进通知
     *     NotificationCompat.Builder(this, packageName).setCustomContentView(customLayout)
     * 3、安装好的Builder进行通知即可
     *
     * @param onNotificationListener 如果自行实现点击事件可不传
     */
    fun notify(notificationId: Int, builder: NotificationCompat.Builder, intentClick: Intent?, intentCancel: Intent?, onNotificationListener: ((context: Context, intent: Intent) -> Unit)?)

接下来是桌面快捷方式使用

同样兼容到目前最新的Andorid 8.0

val shortBuilder=QuickNotify.ShortcutBuilder("这是shortId").setActivity(packageName, RvListActivity::class.java.simpleName, Bundle()).setShortcut("this is a name", ImageUtils.decodeSampledBitmapFromResource(resources, R.mipmap.ic_launcher2))
                        
QuickNotify.notifyDesktopShortcut(shortBuilder) { context, intent ->
     QuickToast.showToastDefault("已成功创建" + intent.getStringExtra(QuickNotify.shortcutName))
}

通过shortcutBuilder配置相关信息,如果需要使用网络图片创建快捷方式,传入bitmap即可,Bundle()是传递到目标的数据集合。创建成功后回调将返回消息。

end---------

推荐使用gradle接入

implementation 'org.quick.android:quick-component:latest.release'

源码地址:https://github.com/SpringSmell/quick-component

好了,到这里就结束,好东西那当然要分享了,马上告诉小伙伴我发现了一个很酷的东西吧。

猜你喜欢

转载自blog.csdn.net/Fy993912_chris/article/details/81667172
今日推荐