Skip to content

cancelCleanUp

取消清理任务

cancelCleanUpSUDRT 协议中的一个实例方法。它用于立即中止当前正在进行的磁盘空间清理或临时文件维护任务。当 App 意识到用户即将进入游戏对局,或者需要立即占用大量 IO 资源时,可以调用此方法来停止后台的清理进程,以确保游戏运行的性能。


方法声明

objectivec
/**
 * 取消当前正在进行的任何活跃的文件清理或维护任务。
 * 调用后,cleanUpExpiredTemporaryFiles: 的 completion 回调将被触发。
 */
- (void)cancelCleanUp;

运行行为

  1. 立即中断:引擎会停止遍历文件系统,不再执行后续的删除(unlink)操作。
  2. 回调触发:如果之前调用过 cleanUpExpiredTemporaryFiles:start:progress:completion:,其 completion 闭包会立即收到一个包含“任务已取消”信息的 NSError(通常是特定的错误码)。
  3. 资源保护:已删除的文件无法恢复,但尚未处理的文件将保持原样,直到下一次清理任务启动。
  4. 无状态性:该方法可以在没有清理任务运行时安全调用,此时不会产生任何副作用。

代码示例

在游戏即将开始前,确保没有后台 IO 任务干扰性能:

objectivec
- (void)prepareForGameStart {
    // 1. 停止可能的清理任务,释放磁盘 IO
    [self.sdkInstance cancelCleanUp];
    
    // 2. 随后执行游戏创建逻辑
    [self.sdkInstance createGameHandleWithOptions:opts completion:^(id handle, NSError *error) {
        // ...
    }];
}

注意事项

  • 线程安全:可以在任意线程调用,SDK 内部会同步状态机以确保清理线程安全退出。
  • 并非强制销毁:该方法仅针对“清理任务”。它不会停止游戏的下载(loadPackage)或游戏的运行(stop)。
  • 最佳实践:建议在低功耗模式或用户设备发热严重时,主动调用此方法以减轻系统负担。