我正在尝试修复其他人的代码,并希望尽可能少地使用模组。该项目是一个小部件。代码的设计方式,可以有多个小部件实例添加到主屏幕。有一个服务接收小部件中动作的广播并相应地处理广播。
HashMap
由于可以有多个小部件实例,该服务使用将小部件 ID 映射到实际小部件来跟踪实例。这工作得很好,直到服务被杀死(通常来自任务管理器)。下一次小部件发送广播时,服务将重新启动(我没有花太多时间了解它是如何重新启动的,但确实如此)。然而,在终止/重新启动服务时,小部件 ID 到实际小部件的映射被清除,因此服务不知道哪个小部件正在发送广播,因此不做任何事情。
处理这种情况的最佳方法是什么?也许以某种方式保存/恢复地图?