已关闭
实况重复恢复 #5010
已关闭
zhaobaoxin创建于 8月25日关闭于 9月10日
共 1 个文件变更+0-1
@@ -672,7 +672,6 @@ void AdvancedNotificationService::OnBootSystemCompleted()
672 ANS_LOGD("Called.");672 ANS_LOGD("Called.");
673 InitNotificationEnableList();673 InitNotificationEnableList();
674 TryStartReminderAgentService();674 TryStartReminderAgentService();
A
Aafwk_helper8月25日

🤖 AI 代码检视意见(回复本评论可解决检视意见,点击被检视代码行左侧的小头像可收起检视意见)


🟡 移除RecoverLiveViewFromDb()可能导致启动后实况通知无法恢复

位置: L674-L675 | 严重程度: Medium

❓ 问题描述

从OnBootSystemCompleted()中移除了RecoverLiveViewFromDb()调用。PR标题表明这是为了修复实况重复恢复问题,暗示该方法在其他代码路径中也被调用以避免重复执行。但如果OnBootSystemCompleted()是唯一的调用点,移除后将导致系统启动后实况通知无法从数据库恢复,造成实况通知数据丢失或功能异常。需要确认是否存在其他调用路径,且该路径能覆盖所有需要恢复的场景。此外,该函数可能涉及IPC反序列化读取数据库中的通知数据,移除后若其他调用路径的时机不同,可能影响恢复的完整性和正确性。

💡 修复建议

修改建议:确认RecoverLiveViewFromDb()在其他代码路径中仍被调用(如服务初始化、数据库变更回调等),确保启动后实况通知仍能正常恢复。若已确认存在其他调用路径,建议在移除处添加注释说明原因,避免后续维护者误解。

674: TryStartReminderAgentService(); 675: // RecoverLiveViewFromDb() is called in [other_path] to avoid duplicate recovery on boot 676: #ifdef ANS_FEATURE_NOTIFICATION_STATISTICS


likedislike
zhaobaoxin
8月25日 评论:
675- RecoverLiveViewFromDb();
676#ifdef ANS_FEATURE_NOTIFICATION_STATISTICS675#ifdef ANS_FEATURE_NOTIFICATION_STATISTICS
677 InitNotificationStatistics();676 InitNotificationStatistics();
678#endif677#endif