如何查询网站开发商,建筑人才网招聘网官网首页,龙书浩个人网站,wordpress有游客注册帐号功能一. 从应用层来分析 在 Android 中#xff0c;可以通过 PendingIntent 来实现有跳转的通知和没有跳转的通知的区别。具体来说#xff0c;有跳转的通知会设置一个 PendingIntent#xff0c;当用户点击通知时会触发该 PendingIntent#xff0c;打开指定的界面或执行特…一. 从应用层来分析 在 Android 中可以通过 PendingIntent 来实现有跳转的通知和没有跳转的通知的区别。具体来说有跳转的通知会设置一个 PendingIntent当用户点击通知时会触发该 PendingIntent打开指定的界面或执行特定的操作而没有跳转的通知则不设置 PendingIntent用户点击通知时不会有任何操作。
//1.创建一个有跳转的通知//创建一个 Intent用于处理用户点击通知时的操作
Intent intent new Intent(context, MainActivity.class);
PendingIntent pendingIntent PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);// 创建一个有跳转的通知,通过setContentIntent()设置跳转
NotificationCompat.Builder builderWithIntent new NotificationCompat.Builder(context, channel_id).setSmallIcon(R.drawable.notification_icon).setContentTitle(有跳转的通知).setContentText(点击将跳转到主界面).setContentIntent(pendingIntent);// 发送有跳转的通知
int notificationIdWithIntent 1;
NotificationManager notificationManager (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.notify(notificationIdWithIntent, builderWithIntent.build());//2.创建一个没有跳转的通知// 创建一个没有跳转的通知,不设置setContentIntent()
NotificationCompat.Builder builderWithoutIntent new NotificationCompat.Builder(context, channel_id).setSmallIcon(R.drawable.notification_icon).setContentTitle(没有跳转的通知).setContentText(这是一个普通通知);// 发送没有跳转的通知
int notificationIdWithoutIntent 2;
notificationManager.notify(notificationIdWithoutIntent, builderWithoutIntent.build()); 在上面的代码中首先创建了一个有跳转的通知并设置了一个 PendingIntent用于处理用户点击通知时的操作。然后创建了一个没有跳转的通知没有设置任何 PendingIntent。最后使用 NotificationManager 分别发送这两个通知。 通过这种方式用户点击有跳转的通知时会打开指定的界面比如 MainActivity而点击没有跳转的通知时则不会有任何操作。 二 . 从系统层来分析 通过监听系统通知,可以得到系统通知接口返回的通知参数 StatusBarNotification sbn, 代码如下: Notification notification sbn.getNotification(); //获得一个Notification对象if (notification.contentIntent ! null) {//有跳转通知,通知设置了PendingIntent}else {//无跳转通知}通过判断通知中的contentIntent 是否为空来区分通知是否设置了跳转,contentIntent 类型为PendingIntent . 通知监听,可以参考监听系统收到的通知