问题现象
应用中添加mdns服务之后,退出后台重新运行App,此时期望删除上次发布的serviceName时,抛出异常:code:401, name:undefined, message:Parameter error,如何解决?
背景知识
mdns管理:通过对本地服务的创建,删除和解析等管理本地服务,并对指定类型的本地服务状态变化进行监听。
分析结论
mdns.removeLocalService只能移除注册过的服务,不能移除搜索到的服务。强行杀掉应用后不是之前注册的服务,因此移除会报错。
修改建议
调用mdns.removeLocalService接口移除服务需要保持注册的应用始终存在,即要保持应用存活,不能强行销毁应用。可以在UIAbility销毁时或者在组件销毁时,调用removeLocalService主动注销服务。