android 通知Notification详解及实例代码
Android 通知系统是Android应用与用户交互的重要途径,特别是在后台运行时。Notification是Android系统提供的一种机制,用于在状态栏中显示信息,即使应用不在前台也能吸引用户的注意力。下面我们将详细讲解Android通知Notification,并给出实例代码。 1. **创建Notification** 创建Notification通常使用`Notification.Builder`类,这是一个构建器模式,允许我们设置各种属性。必须设置`smallIcon`,这是通知图标,通常是应用的launcher图标。例如: ```java builder.setSmallIcon(R.drawable.ic_launcher); ``` 2. **设置通知内容** - `setTicker`: 提供一个简短的预览信息,当通知首次出现时显示。 ```java builder.setTicker("您有一条新的消息!!"); ``` - `setContentTitle`和`setContentText`: 分别设置通知的主要标题和详细内容。 ```java builder.setContentTitle("大标题"); builder.setContentText("文本"); ``` - `setWhen`: 设置通知的时间戳,通常显示为通知的创建时间。 ```java builder.setWhen(System.currentTimeMillis()); ``` - `setContentInfo`: 显示额外的信息,一般在小图标旁边显示。 ```java builder.setContentInfo("Info"); ``` 3. **设置默认行为** `setDefaults`允许我们设置默认的声音、震动和灯光效果。 ```java builder.setDefaults(Notification.DEFAULT_ALL); ``` 4. **点击事件处理** 通过`PendingIntent`来处理用户点击通知后的动作,例如启动一个新的Activity或执行特定操作。 ```java Intent intent = new Intent(this, MainActivity.class); PendingIntent pi = PendingIntent.getActivity(this, 1, intent, PendingIntent.FLAG_UPDATE_CURRENT); builder.setContentIntent(pi); ``` 5. **生成并发送Notification** - `build`方法生成最终的`Notification`对象。 - `NotificationManager`用于管理通知的发送和清除。 ```java Notification notify = builder.build(); // 设置通知不可清除 notify.flags = Notification.FLAG_NO_CLEAR; NotificationManager mananger = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); mananger.notify(1, notify); ``` 6. **兼容性问题** 对于Android API版本低于16的情况,我们需要使用`NotificationCompat.Builder`来创建通知,它位于`androidx.core.app`包中。此外,`cancel(int id)`用于清除指定ID的通知,`cancelAll()`则清除所有通知。 ```java // 16以下版本的兼容写法 NotificationCompat.Builder builder2 = new NotificationCompat.Builder(this); ``` 7. **自定义通知布局** 如果需要更复杂的布局,可以使用`RemoteViews`创建自定义视图,并通过`setContent()`方法设置。 8. **清除通知** 在需要清除通知时,可以通过`NotificationManager`的`cancel(int id)`或`cancelAll()`方法。 ```java public void clearNotification(View v) { NotificationManager manager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); manager.cancelAll(); // 清除所有通知 } ``` 通过以上步骤,我们可以创建、发送和管理Android通知。记得在实际项目中根据需求调整参数,以提供最佳用户体验。同时,注意权限管理和用户隐私,避免不必要的打扰。
- 粉丝: 4
- 资源: 904
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- (源码)基于ArcEngine的GIS数据处理系统.zip
- (源码)基于JavaFX和MySQL的医院挂号管理系统.zip
- (源码)基于IdentityServer4和Finbuckle.MultiTenant的多租户身份认证系统.zip
- (源码)基于Spring Boot和Vue3+ElementPlus的后台管理系统.zip
- (源码)基于C++和Qt框架的dearoot配置管理系统.zip
- (源码)基于 .NET 和 EasyHook 的虚拟文件系统.zip
- (源码)基于Python的金融文档智能分析系统.zip
- (源码)基于Java的医药管理系统.zip
- (源码)基于Java和MySQL的学生信息管理系统.zip
- (源码)基于ASP.NET Core的零售供应链管理系统.zip