`
jiaoronggui
  • 浏览: 1331839 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
博客专栏
B7c2eb31-a8ea-3973-a517-d00141f39b89
项目管理软件-redmin...
浏览量:116533
4a63e153-250f-30f6-a051-97cfc67cb3d3
IT职业规划
浏览量:199523
社区版块
存档分类
最新评论

NotificationManager中FLAG_UPDATE_CURRENT与FLAG_CANCEL_CURRENT 区别

 
阅读更多

 

 

问:今天下午我把PendingIntent.FLAG_UPDATE_CURRENT和PendingIntent.FLAG_CANCEL_CURRENT的区别测试出来了,前者不创建PendingIntent,Intent中的数据全清空,后者新建PendingIntent,而Intent中的数据全清空,我现在不懂的是,什么时候用前者,什么时候用后者呢? 

 

 

答:PendingIntent contentIntent = PendingIntent.getActivity(context, 
num, intent, PendingIntent.FLAG_UPDATE_CURRENT); 

对于FLAG_UPDATE_CURRENT,如果上面的num为常量, 
则对于先后出现的若干Notification,则所有对应的Intent里面的extra被更新为最新的, 
就是全部同一为最后一次的。 

相反,如果num每次不一样,则里面的Inent的数据没被更新。 


对于FLAG_CANCEL_CURRENT,则只响应最前面的第一条Notifiacation,后面所有的不响应..

 

0
0
分享到:
评论

相关推荐

    android_通知栏demo

    PendingIntent resultPendingIntent = PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT); ``` 最后,通过`NotificationManager`来发送通知: ```java NotificationManagerCompat ...

    Android中pendingIntent的深入理解

    - `FLAG_UPDATE_CURRENT`: 更新已存在的PendingIntent,而非创建新的。 - `FLAG_CANCEL_CURRENT`: 取消当前的所有实例,然后创建新的。 - `FLAG_NO_CREATE`: 如果不存在,则不创建新的PendingIntent,返回null。 **...

    Android开发中的Notification应用

    PendingIntent contentIntent = PendingIntent.getActivity(context, 0, new Intent(context, MainActivity.class), PendingIntent.FLAG_UPDATE_CURRENT); builder.setContentIntent(contentIntent); // 设置点击后...

    多个闹钟的添加与取消并弹出通知栏提醒

    PendingIntent pendingIntent = PendingIntent.getBroadcast(this, uniqueRequestCode, intent, PendingIntent.FLAG_UPDATE_CURRENT); ``` 这里的`uniqueRequestCode`用于区分不同的闹钟。 二、设置闹钟 1. 选择...

    状态栏加入进度条

    PendingIntent pendingCancelIntent = PendingIntent.getService(context, 0, cancelIntent, PendingIntent.FLAG_UPDATE_CURRENT); builder.addAction(R.drawable.ic_cancel, "取消", pendingCancelIntent); ``` ...

    Android 自定义通知栏 更新通知栏进度条

    PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT); builder.setContentIntent(pendingIntent); ``` 此外,注意Android O及以上版本需要使用渠道...

    简单的生日提醒

    创建`PendingIntent`时,需要指定触发警报的`Intent`和`FLAG_CANCEL_CURRENT`或`FLAG_UPDATE_CURRENT`标志,以控制新请求如何与现有请求合并。 4. **BroadcastReceiver**:创建一个自定义的`BroadcastReceiver`,在...

    实现Notification的通知栏常驻

    .setContentIntent(PendingIntent.getActivity(context, 0, new Intent(context, YourActivity.class), PendingIntent.FLAG_UPDATE_CURRENT)) // 可选:添加扩展视图 .setStyle(new NotificationCompat....

    android natification 进度条下载

    PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT); builder.setContentIntent(pendingIntent); ``` 6. **取消下载时清除Notification** - 当...

    通知常用工具类

    PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT); builder.setContentIntent(pendingIntent); builder.setSmallIcon(R.drawable.ic_launcher)...

    android Notification使用大全

    PendingIntent pendingIntent = stackBuilder.getPendingIntent(0, PendingIntent.FLAG_UPDATE_CURRENT); builder.setContentIntent(pendingIntent); Notification notification = builder.build(); ...

    ANDROID STATUSBAR

    PendingIntent contentIntent = PendingIntent.getActivity(this, 0, intent1, PendingIntent.FLAG_UPDATE_CURRENT); notification.setLatestEventInfo(this, "NotificationTitle", "NotificationMessage", ...

    安卓通知栏实现

    stackBuilder.getPendingIntent(0, PendingIntent.FLAG_UPDATE_CURRENT); buildersetContentIntent(resultPendingIntent); ``` 4. **自定义通知样式和行为**:例如,你可以设置通知的优先级(`setPriority()`)...

    BackStageNotificationDemo

    PendingIntent pendingIntent = stackBuilder.getPendingIntent(0, PendingIntent.FLAG_UPDATE_CURRENT); builder.setContentIntent(pendingIntent); NotificationManager manager = (NotificationManager) ...

    本地通知 闹铃

    在创建`PendingIntent`时,你需要提供一个意图(Intent)和`PendingIntent.FLAG_UPDATE_CURRENT`标志,确保每次闹钟触发时更新通知的内容。同时,如果需要取消闹钟,可以通过`AlarmManager.cancel()`方法和相同的`...

    android 闹钟

    `PendingIntent.FLAG_UPDATE_CURRENT`用于更新现有的Intent,而不是创建新的。 3. **BroadcastReceiver**: 这是Android中的一个特殊类,用于接收系统或应用程序广播的意图。在本例中,`AlarmReceiver`会在闹钟触发...

    Service实现通知,判断通知栏是否已打开

    PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT); ``` 5. 清除通知: 当不再需要通知时,记得调用`cancel(int id)`方法清除它。 ```java ...

    Android开发之Notification通知用法详解

    return PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT); } private void clearNotification() { NotificationManager manager = (NotificationManager) getSystemService...

    Android一个小闹钟例子

    PendingIntent.FLAG_UPDATE_CURRENT ); builder.setContentIntent(resultPendingIntent); NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_...

    android AlarmManager实现任意时间间隔提醒

    PendingIntent pendingIntent = PendingIntent.getBroadcast(context, uniqueRequestCode, intent, PendingIntent.FLAG_UPDATE_CURRENT); // 设置AlarmManager AlarmManager alarmManager = (AlarmManager) context...

Global site tag (gtag.js) - Google Analytics