Skip to content

uninitialize

SDK 反初始化

重置已初始化的 SDK 实例。该方法用于彻底释放 SDK 占用的内存资源、断开网络连接并清理内部缓存状态。通常在应用退出、用户切换账号或需要使用全新配置重新初始化 SDK 之前调用。


方法声明

objectivec
/**
 Reset the initialized SDK, called when SDK re-initialization is needed.
 */
+ (void)uninitialize;

运行行为

执行该方法后,SDK 将进入“未初始化”状态:

  1. 资源释放:释放所有内部单例占用的内存。
  2. 句柄失效:所有当前活跃的 GameHandle 可能会被强制中断或进入不可用状态(建议在调用此方法前先手动 stopGame)。
  3. 状态重置:清除已配置的 appIdappKey 以及用户认证信息。

代码示例

objectivec
// 当用户登出或需要彻底重置 SDK 环境时
[SUDOP uninitialize];

// 此时如果需要重新使用,必须再次调用 initializeWithConfiguration:

注意事项

  • 对称性:它与 initializeWithConfiguration:completion: 配对使用。
  • 副作用:如果在游戏运行期间调用此方法,可能会导致游戏异常退出或资源泄露。最佳实践是先停止所有运行中的游戏任务。
  • 重复调用:如果 SDK 尚未初始化,调用此方法是安全的(No-op),不会产生副作用。
  • 后续影响:调用后,若未再次初始化就调用其他业务接口(如 preDownloadGame...),SDK 将返回特定的错误码或抛出断言(取决于内部实现)。

关联操作建议

在执行反初始化之前,建议的清理链路如下:

  1. 停止游戏[gameHandle stopGame]
  2. 反初始化[SUDOP uninitialize]