已关闭
实况重复恢复 #5010
zhaobaoxin创建于 8月25日关闭于 9月10日
实况重复恢复 #5010
已关闭
共 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 | |||
| 675 | - RecoverLiveViewFromDb(); | ||
| 676 | #ifdef ANS_FEATURE_NOTIFICATION_STATISTICS | 675 | #ifdef ANS_FEATURE_NOTIFICATION_STATISTICS |
| 677 | InitNotificationStatistics(); | 676 | InitNotificationStatistics(); |
| 678 | #endif | 677 | #endif |
🤖 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