cleanupInvalidKeys method
void
cleanupInvalidKeys()
清理所有无效的 GlobalKey
检查所有注册的 GlobalKey,移除那些已失效的键 建议在切换应用或执行大量操作后调用此方法
Implementation
void cleanupInvalidKeys() {
try {
final invalidKeys = <String>[];
_menuKeys.forEach((index, key) {
// 检查 GlobalKey 是否仍然有效
if (key.currentContext == null || !key.currentContext!.mounted) {
invalidKeys.add(index);
}
});
// 移除所有无效的键
for (final index in invalidKeys) {
_menuKeys.remove(index);
unawaited(DencendLogger.debug('清理无效的 GlobalKey: index=$index'));
}
if (invalidKeys.isNotEmpty) {
unawaited(DencendLogger.debug('清理完成,移除了 ${invalidKeys.length} 个无效的 GlobalKey'));
}
} on Exception catch (e) {
unawaited(DencendLogger.debug('清理无效 GlobalKey 失败: $e'));
}
}