Notification 使用详解(很全)
Notification 在 Android 系统中扮演着重要的角色,它允许应用程序在不干扰用户当前活动的情况下向用户发送消息或提醒。当有新的通知时,Android 会在顶部状态栏显示一个小图标,用户可以通过下拉状态栏来查看和交互。下面是对 `Notification` 使用的详细讲解。 创建一个 `Notification` 需要以下步骤: 1. 获取 `NotificationManager` 对象,这是管理通知的核心组件。通过调用 `getSystemService()` 方法并传入 `NOTIFICATION_SERVICE` 常量来实现: ```java NotificationManager m_NotificationManager = (NotificationManager) this.getSystemService(NOTIFICATION_SERVICE); ``` 2. 创建一个新的 `Notification` 实例: ```java Notification m_Notification = new Notification(); ``` 3. 设置 `Notification` 的属性: - `icon`:设置状态栏显示的图标,通常是应用资源中的一个 drawable 图标,如 `R.drawable.icon`。 - `tickerText`:通知滑出时显示的文本,通常简短地概括通知内容。 - `defaults`:设置默认的行为,例如 `Notification.DEFAULT_SOUND` 会播放默认的通知音效。 - `setLatestEventInfo()`:设置点击通知后显示的详细信息,包括标题、内容以及点击后的动作。这里通常会创建一个 `Intent` 来指定用户点击通知后要启动的 `Activity`,并通过 `PendingIntent` 将其与通知关联起来。 示例代码: ```java m_Notification.icon = R.drawable.icon; m_Notification.tickerText = "Button1 通知内容....."; m_Notification.defaults = Notification.DEFAULT_SOUND; Intent m_Intent = new Intent(NotificationDemo.this, DesActivity.class); PendingIntent m_PendingIntent = PendingIntent.getActivity(NotificationDemo.this, 0, m_Intent, 0); m_Notification.setLatestEventInfo(NotificationDemo.this, "Button1", "Button1通知", m_PendingIntent); ``` 4. 使用 `NotificationManager` 发送通知,通过 `notify()` 方法,传入一个唯一标识符(ID)来标识这个通知: ```java m_NotificationManager.notify(0, m_Notification); ``` 这里的 `0` 是通知的 ID,用于后续取消该通知。 5. 如果需要取消一个已发送的通知,可以调用 `cancel()` 方法,传入相同的通知 ID: ```java m_NotificationManager.cancel(0); ``` 在实际应用中,通常还需要考虑更多高级特性,如自定义视图、设置优先级、使用通知渠道(Android 8.0 及以上版本)、设置定时发送等。例如,你可以通过 `Notification.Builder` 类来构建更复杂的 `Notification`,并设置 `priority`、`visibility`、`when` 等属性,以及添加额外的动作按钮。 此外,为了适配不同 Android 版本,建议使用 `NotificationCompat.Builder`(Android Support Library 或 AndroidX),它提供了一种向后兼容的方式,确保在较旧版本的 Android 上也能正常工作。 创建一个简单的示例应用 `NotificationDemo`,包括一个主 Activity 和一个目标 Activity,主 Activity 有一个按钮,点击按钮时发送通知,目标 Activity 显示通知详情。在 `AndroidManifest.xml` 中,别忘了声明目标 Activity。 `Notification` 是 Android 应用程序与用户进行非侵入式交互的重要工具,通过合理设置和使用,可以提供良好的用户体验,同时保持应用的后台运行。
剩余8页未读,继续阅读
- Vanishtu2012-10-18是android的notification,不是我要的,虽然写的蛮详细
- Android痞子2012-10-25是android的notification,不是我要的,虽然写的蛮详细 .
- 粉丝: 48
- 资源: 47
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助