美文网首页
让人又爱又恨的Notification

让人又爱又恨的Notification

作者: 佛系媛猿 | 来源:发表于2018-06-14 14:22 被阅读3次

                                                                   ✤✤✤  前言 ✤✤✤

这周课题是关于通知的了解,平时我们能看到很多应用发送的通知消息,有时候多了你会觉得很烦,有时候你又会点击进去查看内容。对于开发者而言,不仅仅要考虑是否打扰用户还要考虑外观是否吸引用户,以及点击通知后续的操作问题。今天就来说一说怎么去创建不同风格的通知栏吧。

                                                                  ✤✤✤  重点  ✤✤✤

我们创建通知栏可以在服务(Service)、广播(BroadcastReceiver)、活动(Activity)中进行创建,一般我们在应用开发中更多是基于服务和广播中进行创建通知。为了方便了解通知的创建我的以下例子都是活动(Activity)中进行创建

创建普通样式☟

代码如下 由于Android8.0通知栏做了修改,需要设置通道,否则会提示创建通知失败,所以需要加上版本判断 。8.0系统长按还可出现通知信息,不过这是系统底层实现的功能,没准你用的anroid手机把这个功能去掉了呢。

private StringchannelId ="1";

private  StringchannelName ="jelly";

public void  onCreateNotifacation() {

NotificationManager manager =(NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);

//判断系统是否是8.0

if (Build.VERSION.SDK_INT >=Build.VERSION_CODES.O) {

//需要创建通道

NotificationChannel channel =new NotificationChannel(channelId,channelName,NotificationManager.IMPORTANCE_DEFAULT);

channel.setDescription("渠道解释说明");

//是否显示未读消息点

channel.enableLights(true);

manager.createNotificationChannel(channel);

}

Notification notification =new NotificationCompat.Builder(this, "").setContentTitle("通知标题")

.setContentText("通知内容(This is content)")

.setWhen(System.currentTimeMillis())

.setSmallIcon(R.mipmap.ic_launcher)

.setLargeIcon(BitmapFactory.decodeResource

(getResources(), R.mipmap.ic_launcher)).setChannelId(channelId).build();

//显示通知

manager.notify(1, notification);

}

我们还可以对点击通知做跳转处理,红色标记为跳转所需要的参数☟

//在创建Notification之前 先创建PendingIntent

在设置setContentIntent属性

Intent intent = new Intent(this,SecondActivity.class);

PendingIntent pendingIntent= PendingIntent.getActivity(this, 0, intent, 0);

//跳转 跳转之后通知取消不再显示

notification.setContentIntent(pendingIntent)

.setAutoCancle(true)

.build();

manager.notify(1, notification);

}

一般我们看到的通知有很长文本,如果只是在setContentText("")方法中显示文本内容是显示不全的 这时候我们就需要setStyle()方法。

.setStyle(new NotificationCompat.BigTextStyle().bigText("根据通知style属性我们显示一段很长的文本,记得关注满天星\n" +

"愿你在被打击时 记起你的珍贵 抵抗恶意 \n" +

"愿你在迷茫时 坚信你的珍贵 \n" +

"爱你所爱 行你所行 听从你心 无问西东"))

展示如下☟

如果你需要展示一张图片 通知也是可以支持的同样是setStyle()方法

.setStyle(new NotificationCompat

.BigPictureStyle().bigPicture

(BitmapFactory.decodeResource

(getResources(),R.drawable.love)))

如果你需要设置你自己的通知栏属性 你就需要setCustomContentView()传入你需要展示的view

//创建notification之前先找到你自己的view

RemoteViews remoteViews =new RemoteViews(context.getPackageName(), R.layout.layout_notification);

remoteViews.setTextViewText

(R.id.tv_notification_time,DataFormatUtils.getFormatDate(new Date(System.currentTimeMillis())));

remoteViews.setViewVisibility(R.id.tv_notification_contentssmall,View.VISIBLE);

remoteViews.setTextViewText(R.id.tv_notification_contentssmall,title);

.setCustomContentView(remoteViews)

还有一些其他的定制属性,可能平时会用到 例如我们收到通知的时候会有特定的声音,当然这必须在手机没静音的情况才会听到 setSound()属性 可以是手机中的音乐文件 也可以是项目中的音乐文件 一下是设置的apk中raw目录下的音乐文件

.setSound(Uri.parse("android.resource://"+getPackageName() +"/" + R.raw.d))

还有setLight()设置呼吸灯闪烁 颜色及时间 启动速率和关闭时间

//呼吸灯

.setLights(Color.BLUE, 1000, 2000)

setVibrate()设置震动,需要添加震动权限

//设置震动 还需要添加权限

<users-permission android:name="android.permission.VIBRATE"/>

.setVibrate(new long[1000])

setPriority()设置通知优先级,低优先级的通知可能被隐藏 如果优先级高的会一直被显示 如果用户不操作通知栏的情况下

//设置优先级

.setPriority(NotificationCompat.PRIORITY_MAX)

                                                                    ✤✤✤  结束  ✤✤✤

关于通知需要注意的是,如果用户把你的app通知权限关闭了,那么你的通知就不会再显示了。所以如果你要通过通知给用户一些很重要的信息,那么你就得需要在app中去实现监听通知的状态并进行提示了。有任何问题,欢迎指正😘

相关文章

  • 让人又爱又恨的Notification

    ✤✤✤ 前言 ✤✤✤ 这周课题是关于通知的了解,...

  • 让人又爱又恨

    打扫卫生可真让人又爱又恨! 爱是说,喜欢这种亲手把杂乱的事物归纳整齐的感觉,很有成就感哇! 恨是说,好累啊……打扫...

  • redux让人又爱又恨

    快照:关于指定数据集合的一个完全可用拷贝,该拷贝包括相应数据在某个时间点(拷贝开始的时间点)的映像。快照可以是其所...

  • 此路让人又爱又恨

    海誓山盟没用处,还得金山银海填. 自古深情留不住,总是套路得人心。 现在套路这个词已经被人们玩坏了,貌似对一般人来...

  • 时间,让人又爱又恨

    五一三天,过的太神速,还没好好享受就这样结束了。 还想着4.30那天盯着手机期盼,没想现已快结束。 时间真的有时候...

  • 时光,让人又爱又恨

    一晃眼具体的两年过去了,从不成熟的心智,开始慢慢懂事。自己还是变成了小时候不愿成为的人,毫无特长,且不自知。...

  • 预设,让人又爱又恨

    前天偶然间我点开了思达帕特的微信公众号,里面有一集鹿晗经纪人杨天真的采访,印象最深刻的是杨天真说她从来不进行预设,...

  • 冬雾,让人又爱又恨

    图| 淸凉地儿-了琹 © 物道君语:生活如冬雾,雾起雨雪不休,雾散旭日可求。 中国有句话说:“春雾日头,夏雾雨,秋...

  • 手机,让人又爱又恨。

    在这个智能的时代,就算是意识到手机上的每个应用和那些小红点,不仅仅是单纯的让我们点击,而是在争夺我们的时间,浪费我...

  • 让人又爱又恨的“外卖”

    凌晨,正昏昏欲睡,手机叮咚一声,打开一看,是朋友发来的一则新闻,本来肚子就有点饿,打开看后瞬间饱了还有点犯恶心。 ...

网友评论

      本文标题:让人又爱又恨的Notification

      本文链接:https://www.haomeiwen.com/subject/gbkyeftx.html