cancelCleanUp
取消清理任务
cancelCleanUp 是 SUDRT 协议中的一个实例方法。它用于立即中止当前正在进行的磁盘空间清理或临时文件维护任务。当 App 意识到用户即将进入游戏对局,或者需要立即占用大量 IO 资源时,可以调用此方法来停止后台的清理进程,以确保游戏运行的性能。
方法声明
objectivec
/**
* 取消当前正在进行的任何活跃的文件清理或维护任务。
* 调用后,cleanUpExpiredTemporaryFiles: 的 completion 回调将被触发。
*/
- (void)cancelCleanUp;运行行为
- 立即中断:引擎会停止遍历文件系统,不再执行后续的删除(unlink)操作。
- 回调触发:如果之前调用过
cleanUpExpiredTemporaryFiles:start:progress:completion:,其completion闭包会立即收到一个包含“任务已取消”信息的NSError(通常是特定的错误码)。 - 资源保护:已删除的文件无法恢复,但尚未处理的文件将保持原样,直到下一次清理任务启动。
- 无状态性:该方法可以在没有清理任务运行时安全调用,此时不会产生任何副作用。
代码示例
在游戏即将开始前,确保没有后台 IO 任务干扰性能:
objectivec
- (void)prepareForGameStart {
// 1. 停止可能的清理任务,释放磁盘 IO
[self.sdkInstance cancelCleanUp];
// 2. 随后执行游戏创建逻辑
[self.sdkInstance createGameHandleWithOptions:opts completion:^(id handle, NSError *error) {
// ...
}];
}注意事项
- 线程安全:可以在任意线程调用,SDK 内部会同步状态机以确保清理线程安全退出。
- 并非强制销毁:该方法仅针对“清理任务”。它不会停止游戏的下载(
loadPackage)或游戏的运行(stop)。 - 最佳实践:建议在低功耗模式或用户设备发热严重时,主动调用此方法以减轻系统负担。