uninitialize
SDK 反初始化
重置已初始化的 SDK 实例。该方法用于彻底释放 SDK 占用的内存资源、断开网络连接并清理内部缓存状态。通常在应用退出、用户切换账号或需要使用全新配置重新初始化 SDK 之前调用。
方法声明
objectivec
/**
Reset the initialized SDK, called when SDK re-initialization is needed.
*/
+ (void)uninitialize;运行行为
执行该方法后,SDK 将进入“未初始化”状态:
- 资源释放:释放所有内部单例占用的内存。
- 句柄失效:所有当前活跃的
GameHandle可能会被强制中断或进入不可用状态(建议在调用此方法前先手动stopGame)。 - 状态重置:清除已配置的
appId、appKey以及用户认证信息。
代码示例
objectivec
// 当用户登出或需要彻底重置 SDK 环境时
[SUDOP uninitialize];
// 此时如果需要重新使用,必须再次调用 initializeWithConfiguration:注意事项
- 对称性:它与
initializeWithConfiguration:completion:配对使用。 - 副作用:如果在游戏运行期间调用此方法,可能会导致游戏异常退出或资源泄露。最佳实践是先停止所有运行中的游戏任务。
- 重复调用:如果 SDK 尚未初始化,调用此方法是安全的(No-op),不会产生副作用。
- 后续影响:调用后,若未再次初始化就调用其他业务接口(如
preDownloadGame...),SDK 将返回特定的错误码或抛出断言(取决于内部实现)。
关联操作建议
在执行反初始化之前,建议的清理链路如下:
- 停止游戏:
[gameHandle stopGame] - 反初始化:
[SUDOP uninitialize]