Notification 通知栏分析(AndroidO)
1 概述
通知栏是状态栏中比较常见的功能,通知栏主要用来表示一个事件,比如一条消息、一个后台任务执行进度等。当有通知到来时,在状态栏顶部显示相关信息图标,状态栏下拉后,可以看到通知栏相关信息,并且可以对通知栏中的消息项进行一些处理。
2 通知栏分析
2.1 通知的发送
当需要向系统发送一条通知时,可以使用 NotificationManager 向通知栏添加一条通知,通知的实例创建使用的是 Notification,它用来描述了通知的所有详细信息。在 Android8.0 中,应用发送通知需要带上自定义的通知渠道 NotificationChannels, 否则通知将不会发送成功,而通知渠道主要由用户在系统设置中通过开关来维护。
这里以截图成功后向系统发送通知的代码为例,介绍一下如何发送一条通知。
// frameworks\base\packages\SystemUI\src\com\android\systemui\screenshot\GlobalScreenshot.java
class SaveImageInBackgroundTask extends AsyncTask<Void, Void, Void> {
private final NotificationManager mNotificationManager;
private final Notification.Builder mNotificationBuilder;
...
protected void onPostExecute(Void params) {
if (mParams.errorMsgResId != 0) {
GlobalScreenshot.notifyScreenshotError(mParams.context, mNotificationManager, mParams.errorMsgResId);
} else {
// 发送通知提示截图已保存...
Context context = mParams