当运用程序不在前台运转,这时便借助关照( Notification )向用户发送少许提醒消息。 发出关照后,手机非常上方的状况栏中就会表现一个关照图标,下拉状况栏就会看到关照的细目。

1 根基用法

//获取体系关照服无

NotificationManager manager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);

String contentTitle = "重庆现非常修长电梯"; //题目

String contentText = "宽度仅包容一人爆红网页";//内容

Notification notification = new NotificationCompat.Builder(context).setContentTitle(contentTitle)

.setContentText(contentText).setWhen(System.currentTimeMillis()).setSmallIcon(R.mipmap.ic_launcher)

.setLargeIcon(BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher)).build();

manager.notify(1, notification);

1

2

3

4

5

6

7

8

9

*应用 NotificationCompat 可以包管关照功效能够在当前所有的 Android 版本中都适合。

*NotificationCompat 的 Builder 支持应用连缀的配置要领,这一点很像 jQuery。

Builder 配置要领:

要领名申明

setContentTitle(CharSequence title)配置题目。

setContentText(CharSequence text)配置内容。

setWhen(long when)配置建立关照的光阴,单元是毫秒。

setSmallIcon(int icon)配置关照的小图标,会表现在手机的左上角。

setLargeIcon(Bitmap icon)配置关照的大图标,下拉体系的状况栏时,便看到它啦。

notify(int id, Notification notification) 要领用于表现关照,它有两个参数:id 是我们运用中为关照定义的唯一标识符;notification 就是我们确立的关照工具。

运转后:

关照小图标

下拉体系状况栏,即可看到我们新建的关照消息:

这时的关照消息尚未实现点击结果,我们可以通过 PendingIntent 来实现。它与 Intent 的差别之处是:

Intent - 登时执行某个动作。

PendingIntent - 在某个合适的机遇去执行某个动作。

我们新建一个活动,当用户点击关照消息后,会跳转到这个活动中。

结构文件:

android:id="@+id/activity_notification"

android:layout_width="match_parent"

android:layout_height="match_parent"

>

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:textSize="26sp"

android:text="在重庆自由碑自满世界左近,有一部迷你电梯,因其非常局促惹起了宽泛的关注,对于这部魔性的电梯,有网友表示“这是对胖子的深深歹意······”"

/>

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

这个活动很简单,只是展现少许文本内容。

接着,点窜以前的活动代码:

//获取体系关照服无

NotificationManager manager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);

//建立 PendingIntent

int requestCode = 0;

int flags = PendingIntent.FLAG_UPDATE_CURRENT;

Intent intent = new Intent(context, NotificationActivity.class);//启动 NotificationActivity 活动

PendingIntent pendingIntent = PendingIntent.getActivity(context, requestCode, intent, flags);

//建立关照

String contentTitle = "重庆现非常修长电梯"; //题目

String contentText = "宽度仅包容一人爆红网页";//内容

Notification notification = new NotificationCompat.Builder(context).setContentTitle(contentTitle)

.setContentText(contentText).setWhen(System.currentTimeMillis()).setSmallIcon(R.mipmap.ic_launcher)

.setLargeIcon(BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher)).setContentIntent(pendingIntent).setAutoCancel(true).build();

manager.notify(1, notification);

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

这里建立 PendingIntent 工具,并把它放入 NotificationCompat.Builder 中。

PendingIntent.getActivity 定义如下:

public static PendingIntent getActivity(Context context, int requestCode,

Intent intent, @Flags int flags)

1

2

参数形貌

Context高低文,在 Activity 类中就是本身(this)。

requestCode要求码。

intentIntent 工具。

flags举动体例。

flags 举动体例范例:

范例形貌

FLAG_ONE_SHOTPendingIntent 工具只能被应用一次。

FLAG_NO_CREATE要是 PendingIntent 工具不存在,则回笼 null。

FLAG_CANCEL_CURRENT即便以前的 PendingIntent 工具曾经存在,也会建立一个新的 PendingIntent 工具。

FLAG_UPDATE_CURRENT要是以前的 PendingIntent 工具曾经存在,辣么会更新它的内容。(常用)

留意:我们构建 Build 的过程当中加入了 setAutoCancel(true),则表示当用户点击了关照后,手机左上角的图标就不会再表现啦。也能够应用 NotificationManager 的 cancel 要领主动作废,这可以运用于某些分外场景:

int notifyId = 1;//关照 ID

manager.notify(notifyId, notification);

//耽误 5 s,要不关照一会儿就会被作废啦

try {

Thread.sleep(5000);

} catch (InterruptedException e) {

e.printStackTrace();

}

manager.cancel(notifyId);

1

2

3

4

5

6

7

8

9

10

运转程序,再次点击体系关照栏中的关照,这时将会弹出关照活动页:

2 高级功效

2.1 自定义关照音

翻开 Android Device Monitor,可以看到在 "/system/media/audio/notifications/ 下自带了良多关照音,我们可以选定乃至是自定义一个喜好的关照音:

体系自带的关照音

//自定义关照音

Uri customSound = Uri.fromFile(new File("/system/media/audio/notifications/Altair.ogg"));

1

2

可以通过以下体例获得体系的关照音:

Uri sound = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);

1

非常后应用 setSound 要领来配置关照音:

public Builder setSound(Uri sound)

1

是不是很简单呀O(∩_∩)O哈哈~

2.2 关照振动

通过配置 vibrate 属性,可以让关照出现时让手机振动,它定义如下:

public Builder setVibrate(long[] pattern)

1

pattern 是长整型数组,它被用来配置手机稳定和振动的时长,以毫秒为单元。它是一种交替的配置形式,好比下标 0 表示稳定的时长,下标 1 表示振动的时长,下标 2 又表示振动的时长,以此类推。

Notification notification = new NotificationCompat.Builder(context)

...

.setVibrate(new long[]{0,1000,1000,1000}).build();

1

2

3

接着,在 AndroidManifest.xml 中申明振动权限:

1

如许,当用户收到关照时,手机就会振动啦 O(∩_∩)O哈哈~

2.3 呼吸灯

呼吸灯是指灯光在微电脑的掌握之下实现由亮到暗的渐渐变更,感受好像是人在呼吸,它起到一个关照提醒的感化。

通过配置 setLights ,可以掌握呼吸灯的变更频率,它定义如下:

public Builder setLights(@ColorInt int argb, int onMs, int offMs)

1

参数申明

argb灯的色彩,通过 Color 类来配置。

onMs灯亮的时长,单元:毫秒。

offMs灯灭的时长,单元:毫秒。

//自定义色彩-紫色

int color=Color.rgb(255,0,255);

Notification notification = new NotificationCompat.Builder(context).setContentTitle(contentTitle)

...

.setLights(color,1000,1000).build();

1

2

3

4

5

6

2.4 富文本

NotificationCompat.Builder 类中的 setStyle() 要领,可以让我们构建出富文本的关照内容, 这个要领汲取一个 NotificationCompat.style 参数,通过它用来建立出详细的富文本信息,如长文字 、 图片等 。

2.4.1 长文本

要是 setContentText() 传入的内容过长,辣么一行内表现不完的内容就会变为不祥号:

//长文字

String longContentText = " 即日,重庆现非常修长电梯走红网页,毕竟怎么样环境呢?在重庆自由碑自满世界左近,有一部显得十分“修长”的迷你电梯,经测量,宽度约57.5厘米,只能容下一个人乘坐,一般而言,一般的电梯可以站两个人,但这部迷你电梯相对局促,于是有很多旅客特地来打卡摄影。";//内容

android.support.v4.app.NotificationCompat.BigTextStyle bigTextStyle=new NotificationCompat.BigTextStyle().bigText(longContentText);

Notification notification = new NotificationCompat.Builder(context).setContentTitle(contentTitle)

...

.setStyle(bigTextStyle).build();

1

2

3

4

5

6

7

8

长文本表现结果

2.4.2 图片

图片表现结果

2.5 优先级

NotificationCompat.Builder 类中的 setPriority() 要领可用于配置关照的紧张程度,它汲取一个整型参数,在 NotificationCompat 中定义了 5 级优先级常量值:

可用的优先级参数

int priority=NotificationCompat.PRIORITY_MAX;

Notification notification = new NotificationCompat.Builder(context).setContentTitle(contentTitle)

...

.setPriority(priority)

.build();

1

2

3

4

5

6

要是配置为非常高优先级,辣么它会干脆表现在屏幕顶部:

非常高优先级结果

确保这个关照对于用户来说确实是至关紧张的,否则要是用户发生了反感,辣么有可能会卸载掉这个 APP 哦。

android8 通知呼吸灯_android8 通知呼吸灯_说说8.0下 Android 通知(Notification)相关推荐

  1. android8 通知呼吸灯_说说8.0下 Android 通知(Notification)

    当运用程序不在前台运转,这时便借助关照( Notification )向用户发送少许提醒消息. 发出关照后,手机非常上方的状况栏中就会表现一个关照图标,下拉状况栏就会看到关照的细目. 1 根基用法 / ...

  2. android通知悬浮通知_Android通知直接回覆

    android通知悬浮通知 Android Notification Direct Reply action lets us reply to the notification message, it ...

  3. android通知的呼吸灯,跑马灯都弱爆了,这款应用可以把 Android 通知玩儿出花……...

    原标题:跑马灯都弱爆了,这款应用可以把 Android 通知玩儿出花-- 能在通知提醒这种稀疏平常的领域内玩出花不多,仔细回想一下我的脑海里能够浮现出来的也只有当年 Oppo Find 7 底部的「天 ...

  4. android 通知灯 测试,Android灯光系统通知灯【转】

    标签: 一.通知灯应用程序的编写 1.首先实现一个按钮功能 xmlns:tools="http://schemas.android.com/tools" android:layou ...

  5. Android中notification通知的Demo——震动,铃声,Led灯闪烁

    这里要注意几点: 1. notification的各种方法及参数的应用 2. 旧版本的SDK和新版本的SDK消息推送的写法是有些不一样的   1. notification的各种方法及参数的应用  ( ...

  6. 51单片机心形灯实现旋转呼吸灯流水编程

    51单片机心形灯--实现旋转呼吸灯流水编程 其他心形灯类型编码请看我的其他博文~ 心形灯效果图 如果是静态效果请刷新页面哦 心形灯原理图 编译软件:Keil uVision5 (如有需要可点此链接下载 ...

  7. Android 8.0 创建管理通知渠道Notification

    从Android8.0(API26)开始,所有的通知必须分配一个渠道.每一个渠道,你都可以设置渠道中所有通知的视觉和听觉行为.然后,用户能够随意修改这些设置来决定通知的行为. 在用户界面渠道显示为 & ...

  8. Android通知Notification使用全解析,看这篇就够了

    1.效果 2.简介 通知是 Android 在您的应用 UI 之外显示的消息,用于向用户提供提醒.来自其他人的通信或来自您的应用的其他及时信息.用户可以点击通知打开您的应用或直接从通知中执行操作. 2 ...

  9. Android通知——Notification

    Android通知--Notification 创建通道 在显示通知之前必须先设置通道,这是必须前提. 可以在此对此通道的通知进行基本的设置,例如是否显示呼吸灯.是否震动.优先级等. 代码大概长这样: ...

最新文章

  1. 院士谈如何做好研究生:要逼着自己去想问题,最大的浪费是聪明人不思考
  2. Nginx配置和内核优化 实现突破十万并发
  3. codeforces 547B【单调栈】
  4. leecode第一百四十八题(排序链表)
  5. 怎样知道邮箱的端口_AllenNLP源码拓展——训练结束向邮箱发邮件
  6. ThinkPhp框架基础知识
  7. xboxone硬盘坏的表现_【32期】硬盘损坏的根源居然是——它!
  8. 买彩票,也要了解一些数学知识
  9. mysql期末考试试卷_mysql试题
  10. 13 岁自学编程,提出演进式架构的她,成 ThoughtWorks CTO!
  11. java反射创建实例_Java反射创建实例
  12. 求和(1,2,3.....n使其和为m的所有情况)
  13. Tomcat实现Session对象的持久化原理及配置方法介绍
  14. Python堆叠式神经网络模型实践【Stacking策略+Keras框架】,GUI可视化应用
  15. flyme禁止系统更新_彻底关闭魅族flyme系统自动更新的方法分享
  16. Capstone/CS5211低成本替代昆泰CH7511B方案
  17. 算法:什么是宠物收养所问题?
  18. RMON MIB:远程监控管理信息库
  19. 通过PLSQL查看所连接的ORACLE的版本
  20. Nero 7 Premium Reloaded 7.8.5.0

热门文章

  1. 淘宝/天猫获取卖出的商品订单列表 API 返回值说明
  2. VSCode编写Markdown设置输出PDF的页边距
  3. 这样的财务报表分析软件谁不爱!帮你轻松搞定财务问题~
  4. 揭秘:黑客经济是如何运行的
  5. 【Paper Reading】BatchCrypt: Efficient Homomorphic Encryption for Cross-Silo Federated Learning
  6. always和always@(*)
  7. 判断用户离线在线隐身
  8. 高情商就是说话让人感到舒服
  9. JAVA关于int强转char,打印出乱码的原因
  10. 靖江人送灶神(灶王爷)