Android Notification完全指南

4星 · 超过85%的资源 需积分: 25 12 下载量 144 浏览量 更新于2024-09-22 收藏 54KB DOC 举报
"这篇文档详细介绍了Android中的Notification的使用方法,包括如何创建、设置属性以及取消Notification。" 在Android开发中,Notification是一个至关重要的组件,它允许应用在系统状态栏中向用户显示提醒,即使应用不在前台运行也能与用户进行交互。下面是Notification的详细使用步骤和相关知识点: 1. 获取NotificationManager: 首先,你需要通过`NotificationManager`来管理Notification的显示和清除。这可以通过调用`getSystemService`方法,并传入`NOTIFICATION_SERVICE`常量来实现。例如: ```java NotificationManager m_NotificationManager = (NotificationManager) this.getSystemService(NOTIFICATION_SERVICE); ``` `this`通常代表当前的`Context`,如Activity或Service。 2. 创建Notification对象: 接着,你需要实例化一个`Notification`对象,这通常是这样的: ```java Notification m_Notification = new Notification(); ``` 3. 设置Notification属性: - 图标:使用`icon`字段设置状态栏和通知中心显示的小图标,例如: ```java m_Notification.icon = R.drawable.icon; ``` - Ticker文本:`tickerText`用于设置通知首次出现时在通知栏滚动显示的文本: ```java m_Notification.tickerText = "Button1通知内容.."; ``` - 声音:使用`defaults`字段可以设置默认的通知声音,如: ```java m_Notification.defaults = Notification.DEFAULT_SOUND; ``` 默认值可以是`Notification.DEFAULT_SOUND`(声音)、`Notification.DEFAULT_VIBRATE`(振动)或`Notification.DEFAULT_LIGHTS`(LED灯闪烁)。 4. 设置意图(Intent): 为了在用户点击Notification时启动相应的Activity或Service,你需要创建一个`Intent`并包装成`PendingIntent`: ```java Intent m_Intent = new Intent(NotificationDemo.this, DesActivity.class); PendingIntent m_PendingIntent = PendingIntent.getActivity(NotificationDemo.this, 0, m_Intent, 0); ``` 这里的`DesActivity.class`是你希望启动的Activity,`0`作为请求码,通常可视为唯一标识。 5. 设置Latest Event Info: 调用`setLatestEventInfo`方法将`Intent`、标题、内容和`PendingIntent`绑定到`Notification`: ```java m_Notification.setLatestEventInfo(NotificationDemo.this, "Button1", "Button1通知", m_PendingIntent); ``` 这里`NotificationDemo.this`是上下文,"Button1"是标题,"Button1通知"是内容。 6. 显示Notification: 最后,使用`NotificationManager`的`notify`方法显示Notification,传入一个唯一的ID: ```java m_NotificationManager.notify(0, m_Notification); ``` ID用于识别并更新已存在的Notification,如果ID相同,新的Notification会替换旧的。 7. 取消Notification: 当不再需要Notification时,可以通过`cancel`方法移除: ```java m_NotificationManager.cancel(0); ``` 同样,ID用于确定要取消的特定Notification。 除此之外,Android的Notification API随着时间的推移不断演进,现在支持更丰富的样式,如大图通知、自定义视图、Channel管理等。在新版本的Android中,开发者需要创建`NotificationChannel`来管理不同类型的Notification,以提供更好的用户体验和控制。例如: ```java NotificationChannel channel = new NotificationChannel("channelId", "channelName", NotificationManager.IMPORTANCE_DEFAULT); m_NotificationManager.createNotificationChannel(channel); ``` 然后在创建`Notification`时指定该`channelId`。这些改进使得开发者能够更好地控制通知的呈现方式和用户对其的交互方式。