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'
好了,到这里就结束,好东西那当然要分享了,马上告诉小伙伴我发现了一个很酷的东西吧。