目录

进入应用阅读消息后,下滑通知栏中的消息通知没有自动消失

问题现象

打开应用查看消息通知后,通知栏里对应的提醒依然显示,未自动消失。

背景知识

问题定位

  1. 在日志中搜索'Process push message',可以看到应用推送了两条消息通知。
    C05300/push_manager_service/push50100073: Process push message begin, uniqMsgId: 4114A4E2A1666936, pushType: 0, packageName: 应用包名, userId: 100, appIndex: 0
    C05300/push_manager_service/push50100073: Process push message end, uniqMsgId: 4114A4E2A1666936, pushType: 0, packageName: 应用包名, userId: 100, appIndex: 0
    C05300/push_manager_service/push50100073: Process push message begin, uniqMsgId: 52B4A4E2E0707924, pushType: 0, packageName: 应用包名, userId: 100, appIndex: 0
    C05300/push_manager_service/push50100073: Process push message end, uniqMsgId: 52B4A4E2E0707924, pushType: 0, packageName: 应用包名, userId: 100, appIndex: 0
  2. 然后搜索CancelNotification|Cancel Key,如果应用实现了取消已发布的通知的功能,可以搜到如下相关日志。
    02-11 10:50:54.697   1565-13357    C01203/foundation/Ans           foundation            I     CancelNotification key = __100_20020203_com.example__520749943-
    02-11 10:50:54.697   3220-3027     C01203/com.ohos.sceneboard/Ans  com.ohos.sceneboard   I     Cancel Key=__100_20020203_com.example__520749943,sortingMap size=0,reason=8

    如果是应用自身取消某个通知,则打印reason=8。

    如果是应用自身取消所有通知,则打印reason=9。

分析结论

结合问题现象和日志分析,通知栏发布该应用的通知消息后,用户打开应用查看消息,但是应用没有取消该应用的某个或者所有已发布的通知,导致用户发现通知栏的消息没有自动消失。

修改建议

建议打开应用时,根据消息ID使用notificationManager.cancel接口对当前应用的消息通知做清除操作。