Android通知

| setWhen | 指定通知被创建的时间 |

| setSmallIcon | 设置通知的小图标 |

| setLargeIcon | 设置通知的大图标 |

| bulid | 创建通知 |

以上工作完成后,只需要调用NotificationManager的**notify()**方法就可以让通知显示出来。

notify():接收两个参数

第一个参数是 id,保证每个通知的 id 都是不同的

第二个参数是 Notification对象,直接将上面创建的Notification对象传入即可

因此,显示一个通知就可以写成:

manager.notify(1,notification);

具体实现:

新建一个NotificationTest项目,并修改activity_main.xml中的代码,如下所示:

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout

xmlns:android=“http://schemas.android.com/apk/res/android”

android:orientation=“vertical”

android:layout_width=“match_parent”

android:layout_height=“match_parent”>

<Button

android:id=“@+id/send_notice”

android:text=“Send Notice”

android:layout_width=“wrap_content”

android:layout_height=“wrap_content” />

现在我们来优化一下NotificationTest项目,给刚才的通知加上点击功能,让用户点击它的时候可以启动另一个活动。我们创建notification_layout.xml:

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout

xmlns:android=“http://schemas.android.com/apk/res/android”

android:layout_width=“match_parent”

android:layout_height=“match_parent”>

<TextView

android:layout_width=“wrap_content”

android:layout_height=“wrap_content”

android:layout_centerInParent=“true”

android:textSize=“24sp”

android:text=“This is notification layout”/>

这样就把NotificationActivity这个活动准备好了,下面我们修改MainActivity中的内容,给通知加入点击功能,如下:

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

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

然后在NotificationCompat.Builder的后面加上 setContentIntent(pi);

最后,我们再来实现通知取消的功能。方法有两种:

一是NotificationCompat.Builder后在连缀一个 setAutoCancel() 方法

二是显式调用 NotificationManager的 cancel() 方法将它取消:

NotificationManager manager = (NotificationManager)

getSystemService(NOTIFICATION_SERVICE);

manager.cancel();

2.通知的进阶用法


继续观察NotificationCompat.Builder这个类,可以发现有许多API我们没有用到,接下来列举几种常用的通知API。

| 方法 | 功能 |

| — | — |

| setSound | 设置通知的声音提示 |

| setVibrate | 设置通知时手机的震动 |

| setLights | 设置手机LED灯闪烁 |

| setDefault | 设置通知的默认样式 |

setVibrate 手机震动需要在AndroidManifest.xml文件当中加入如下声明:

3.通知的高级用法


(一)当我们使用 setContentText 时候,会发现当出现长文字,导致在通知栏当中文本内容被省略了,此时可以用到 setStyle() 的方法:

.setStyle(new NotificationCompat.BigTextStyle().bigText(“…”))

.build();

而在通知栏当中加入大图片可以用类似的方法:

.setStyle(new NotificationCompat.BigPictureStyle().bigPicture(BitmapFactory

.decorateResource(getResources(),R.drawable.big_image)))

.build();

以上就是 setStyle() 方法的重要内容了

(二)setPriority() 方法可以设置通知的重要程度。

setPriority() 接收一个参数来设置这条通知的重要程度,分别为以下五种:

| 参数 | 功能 |

| — | — |

| PRIORITY_DEFAULT | 默认的重要程度,和不设置是一样的 |

| PRIORITY_MIN | 最低的重要度 |

| PRIORITY_LOW | 较低的重要度 |

| PRIORITY_HIGH | 较高的重要度 |

| PRIORITY_MAX | 最高的重要度 |

设置的代码如下所示:

.sePriority(NotificationCompat.PRIORITY_MAX )

.build();

以上便是Android系统通知的设置方法

最后

小编这些年深知大多数初中级Android工程师,想要提升自己,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助

因此我收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。

[外链图片转存中…(img-SeLl6q4i-1719021671545)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人

都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

资料⬅专栏获取
小编这些年深知大多数初中级Android工程师,想要提升自己,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助**。

因此我收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。

[外链图片转存中…(img-SeLl6q4i-1719021671545)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人

都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

资料⬅专栏获取

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值